Commit Graph

107 Commits

Author SHA1 Message Date
Ralf Becker
297fc564d5 use stat values for uid, gid and mode only for EGroupware stream wrapper, for stock PHP ones use is_(readable|writable|executable), do NOT check urls with placeholders on mount 2010-11-07 13:17:53 +00:00
Ralf Becker
7ed2f90ad4 new mode to return the url 2010-10-15 20:22:40 +00:00
Ralf Becker
2a801e61fe always use regular links stream wrapper here: extended one is unnecessary (slow) for just listing attachments 2010-10-12 08:17:10 +00:00
Ralf Becker
2777c78d74 new mount option for filesystem streamwrapper to specify a download url, to be used instead of default webdav.php download, eg. if mounted directory is already in the docroot or mapped via an alias 2010-09-07 11:05:20 +00:00
Ralf Becker
75a604fad6 "add G to egw_vfs::hsize()" 2010-05-19 09:12:16 +00:00
Ralf Becker
39dfb0b3fe "invalidate session cache, to make new mounts/unmounts visible in current session" 2010-05-15 20:40:27 +00:00
Ralf Becker
fd56fb27c3 Correct quoting of special chars in vfs:
- # has special meaning in url and is intern always urlencoded as %23
- ? has special meaning in url and is intern always urlencoded as %3F
- % need to be urlencoded as %25, as it's the escape char in urlencoding
  (it has not been stored urlencoded in sqlfs so far, there's some
   workaround in filemanger_ui to deal with the old unencoded % chars)
- space and + are NOT urlencoded in sqlfs in the DB, they get urlencoded
  only for download urls
- " get urlencoded for download urls only as it messes up the html
  markup
--> Filenames get urldecoded, before displayed to user
- done manually eg. in messages
- done automatically in new vfs-name widget (both ways)
2010-05-11 15:02:30 +00:00
Ralf Becker
7e8c37c015 allow extra_info to process buttons, by passing it the content array 2010-04-22 17:38:01 +00:00
Klaus Leithoff
78e297eb83 fixing typo regarding the check of modification time (provided by Andreas Stoeckel) 2010-04-07 12:28:07 +00:00
Ralf Becker
8d033f95f8 display a backend specific tab, if supported by backend, eg. versioning information 2010-03-23 20:44:17 +00:00
Ralf Becker
c4e9e875a2 "- fixed error prefenting updating of locks
- added constant do enable debuging of locks"
2009-10-13 21:05:09 +00:00
Ralf Becker
7ec34336f3 some precaution to never allow to (recursivly) remove /, /apps or /home 2009-08-12 09:47:53 +00:00
Ralf Becker
944bb3073c fixed since 1.7.002 not working update from 1.4:
- fs_link column is queried by sqlfs, but get created in 1.7.002
- pdo does not throw exception on sql errors, it silently ignores them
  --> told it now in constructor to also throw exceptions
- egw_vfs::find() was not always honoring the url option
2009-07-01 15:17:36 +00:00
Ralf Becker
88c9aca3f3 "allow egw_vfs::mount() to work in setup:
- need to read fs-tab
- need to load wrapper (otherwise file_exists($url) fails)"
2009-05-28 11:29:17 +00:00
Ralf Becker
2408fbb0c9 "implemented dir() and scandir() for egw_vfs" 2009-05-16 08:22:20 +00:00
Ralf Becker
85def60ffa "option to ignore hidden files (name starts with a '.' or is 'Thumbs.db'),
default is now to ignore them"
2009-05-11 20:42:23 +00:00
Ralf Becker
0d28eb4cea "egw_vfs::find() always use name as second sort criteria" 2009-05-06 09:00:36 +00:00
Ralf Becker
bc65324a7c new type F for egw_vfs::find to return only files or symlinks to files
--> dont show symlinks to dirs as attachements / link-widget
2009-05-04 16:37:10 +00:00
Ralf Becker
9e88b1ba9d "using lstat in find and check type 'd' directly against mode from lstat for better performance" 2009-05-02 14:15:31 +00:00
Ralf Becker
287131565f Fixed follow option in find():
- if base is a symlink to a dir, this one is listed anyway
- symlinks to dirs (beside the base) are only descended, if
  $options['follow'] is specified
- links are returned for type 'f'
--> removed follow option from find() in filemanager_ui::get_rows()
--> no more infinit symlink loops in filemanager GUI
2009-05-02 14:00:31 +00:00
Ralf Becker
a8bf31c274 "fixed handling of query parts in dirname and basename" 2009-04-27 11:49:50 +00:00
Ralf Becker
660ab41661 "- egw_vfs::check_access() using resolved symlink to call check_extended_acl on backend
- mime_magic"
2009-04-22 10:02:18 +00:00
Ralf Becker
a694662838 "file_exists for vfs" 2009-04-18 09:51:51 +00:00
Ralf Becker
9e34658599 "fixed not working egw_vfs::dirname if result should be '/', eg. egw_vfs::dirname('/home)" 2009-04-15 21:09:04 +00:00
Ralf Becker
fcb8f3497c Finally fixed creation and rename of home directories:
- egw_vfs::stat and egw_vfs_stream_wrapper::url_stat now both have a
  parameter $try_create_home=false, which do not create a non-existing
  home-directory by default.
- filemanger_ui calls egw_vfs::stat($path,true) to create an evtl.
  missing home dir (in case it does not exist because of previous
  problems)
--> fixes not working home-dir creation or rename, because url_stat
    already tried to create the home-dir
2009-04-06 13:46:45 +00:00
Ralf Becker
039cf26d22 "- replaced self::SCHEME.'://default' with self::PREFIX
- added log calls to mount and umount
- fixed not working remount of a path with a different url (returned true but did not changed the fstab)"
2009-04-01 14:06:50 +00:00
Ralf Becker
8f7f89666f New options for filesystme stream-wrapper:
- all:   false (default) = ignore files starting with a dot '.',
  true = show all files (. and .. are always ignored!)
- exec: false (default) = do NOT allow to upload or modify scripts, 
  true = allow it (if docroot is mounted, this allows to run scripts!)
--> deny_script method was added to egw_vfs and calls to it from
filemanager
Other fixes:
- missing write rights of the webserver were not removed from perms
  (causing warnings to be displayed in the ui)
- rename was not working due to typos
--> should be backported for obvious reasons to 1.6
2009-03-31 11:30:12 +00:00
Ralf Becker
cc9d7445c3 "fix concat to allow filenames containing \"..\"" 2009-03-24 17:19:38 +00:00
Ralf Becker
e966c73feb "make profind and get_eacl fail silent, if backend does not support them" 2009-03-24 13:56:22 +00:00
Ralf Becker
55d2aaa3ee Implemented symlinks for eGW's VFS:
- sqlfs can store now symlinks (implements symlink and readlink)
- vfs resolves symlinks before calling a mounted stream-wrapper
--> symlinks can be between different mount-points
- filemanger can create symlinks and follows them
- etemplate vfs_widget displays symlinks (to be improved)
Happy testing :-)
2009-03-19 20:12:35 +00:00
Klaus Leithoff
be859fa1f6 fixing various webdav problems, regarding pathbuilding 2009-01-29 18:58:52 +00:00
Ralf Becker
e54f9ee079 Fixed encoding problems in WebDAV and vfs:
- egw_vfs::download_url as not encoding + or ' ' in pathes
- HTTP_WebDAV_Server was urldecoding $_SERVER[PATH_INFO], which is
  wrong, as it is NOT encoded
- HTTP_WebDAV_Server was NOT urlencoding the pathes in PROPFIND
  responses, causing eg. cadaver not to be able to use dirs containing
  + or space
2008-10-21 11:57:26 +00:00
Ralf Becker
0218ffb751 - new vfs-widget to encapsulate common vfs/file related stuff
+ path with clickable components
  + human readable size, mode, ...
  + mime icon with integrated thumbnail creation
- link widget uses now vfs-mime for it's icons
- thumbnail creation is now switched on with size 32px by default, it can
  be switched of by the admin or user, in doing so explicitly
- mime-icons are moved from filemanager to etemplate, as not everyone
  installs filemanager
- filemanager has now 3 display modi:
  + Current directory (with subdirs always on top)
  + Subdirs sorted in
  + Files from subdirs (shows recursive all files and you
    can click on the path components thanks to new vfs widget)
2008-10-06 17:43:42 +00:00
Ralf Becker
401c0de336 - renamed key of property value to 'val' like in HTTP_WebDAV_Server
- support for propfind and proppatch for WebDAV
2008-10-05 19:01:49 +00:00
Ralf Becker
0a7d4f9782 Comment and custom fields for filemanager / sqlfs 2008-10-05 17:07:36 +00:00
Ralf Becker
f0c47082a2 "allways add stat array as last parameter to egw_vfs::find() callback" 2008-10-03 11:06:41 +00:00
Ralf Becker
dec9991bbf "icons matching only the first part of the mime type were not displayed" 2008-10-03 08:14:35 +00:00
Ralf Becker
7ac2a20db3 "fixed problems of egw_vfs::find with query-part in url's" 2008-10-02 11:03:26 +00:00
Ralf Becker
c38cb2da76 "an other small fix for egw_vfs::concat" 2008-10-01 18:02:23 +00:00
Ralf Becker
f128866a37 "concat with query was not working if path ended in a slash" 2008-10-01 11:39:38 +00:00
Ralf Becker
e76f20f665 New stream-wrapper to mount the regular filesystem into the vfs while
allowing to set an arbitrary uid, gid and mode for the vfs (like
mounting a dos Filesystem under Linux).
Can be used to mount eg. an upload dir writable only by Admins:
filemanger/cli.php mount --user root_admin --password whatever \
        filesystem://dummy/var/www/html/uploads?group=Admins&mode=075 \
        /uploads
Please note that you can NOT use filesystem:/something!
Fixed the vfs-classes to deal correctly with get-parameters used as
mount-options.
2008-09-30 11:52:56 +00:00
Ralf Becker
5cfc38b4f6 moved webdav handler in the root dir, as its now a general service and not only used by filemanager 2008-05-10 21:15:46 +00:00
Ralf Becker
6587e340fc Some modifications required by CalDAV 2008-05-08 20:33:09 +00:00
Ralf Becker
f6a883713f locking for eGW's WebDAV (and later on CalDAV).
no recursive (depth infinit) locks atm.
2008-05-01 11:44:55 +00:00
Ralf Becker
2a1d86911b allow to call download url with an vfs-url instead of an path 2008-04-21 11:05:34 +00:00
Ralf Becker
9fe5314ed6 fixed not working removal of home dirs, if acocunt/group get deleted 2008-04-19 09:15:46 +00:00
Ralf Becker
0a5be8a725 moved mime_icon method to egw_vfs 2008-04-16 07:07:31 +00:00
Ralf Becker
501df49cbb stream wrapper interface is now eGW VFS interface
- if you already run the 1.5.003 update (AND modified anything in the VFS), you have to re-run it, to not loose your modifications or risk an inconsistent VFS (DB does not match filesystem)
- to re-run the 1.5.003 update (only if your version is already 1.5.003 or bigger!) run the following sql:
UPDATE egw_applications SET app_version=1.5.002 WHERE app_name=phpgwapi
- the new vfs supports now an extended ACL, if that is supported by the backend (sqlfs only currently)
- eacl allows to set separate recursive acl rights for different users or groups on a directory (and subdirs)
- former group grants of group dirs are converted to eacl, thought we only support read or read+write access (no extra add or delete)
- attachments via the links class now also use a stream wrapper interface (links_stream_wrapper) and WebDAV as download handler (which requires no longer filemanager run rights)
2008-04-14 05:52:24 +00:00
Ralf Becker
3f5c03f91a "removed double include of mounted dirs in egw_vfs::find" 2008-03-14 15:37:33 +00:00
Ralf Becker
68dfe96fed "new method download_url" 2008-03-14 15:00:06 +00:00
Ralf Becker
d2094b8958 search, lettersearch, merge content of subdirs (recursive display) 2008-03-03 12:16:11 +00:00
Ralf Becker
0af252ad55 ordering and limited resultsets 2008-03-03 07:53:43 +00:00
Ralf Becker
4df4fd9f06 first work on UI for a new filemanager and some vfs bugfixes and improvments 2008-03-02 21:44:15 +00:00
Ralf Becker
3cd2ce8dd2 fixed mount command and enhanced egw_vfs::find() 2008-02-29 07:27:49 +00:00
Ralf Becker
8afe9094b7 More improvments of the sqlfs code and the command line interface:
- read rights are not checks in each traversed directory (via sql in a single query to locate the path)
- diropen additionally checks for execute rights
- fopen checks for read or write depending on the mode
- chmod, chgrp, chown methods in sqlfs and egw_vfs/vfs plus an egw_vfs::$is_root var used to grant root rights (no access controll and chown or chgrp without being the owner of a file)
- find method (some more params to come) to recursivly search and optionaly execute some callback
- egw_vfs::remove doing a "rm -r" / recursive remove or dirs and files
- new files or dirs inherit the perms and ownership from the parent directory (no umask)
- files/dirs the user has no read rights, in a directory where he has no write rights, get hidden (eg. not showing all the other users / groups home dirs
- many new cli commands (chmod, chgrp, chown, find), recursive option for most commands and the ability to use it with root rights, see the usage message if called without options
- "cp -r -p" to copy a whole tree incl. ownership and perms, eg. backing up /home to /backup
2008-02-26 08:51:42 +00:00
Ralf Becker
9c649da978 WebDAV can use now the new stream wrapper interface, thought its switched off by default in filemanager/webdav.php (see the comments at the end of the file) 2008-02-18 06:43:49 +00:00
Ralf Becker
e3ee4fb7dc new egw_vfs class, with many static methods to access the new vfs, see the documentation in the header of egw_vfs 2008-02-07 06:37:45 +00:00