* Filemanager: removing extended ACL for groups was not immediatly reflected in rights of current user, had to log out and in again

This commit is contained in:
Ralf Becker 2013-02-20 13:59:31 +00:00
parent a67cdbb09f
commit ea411d53c8

View File

@ -1404,9 +1404,10 @@ class sqlfs_stream_wrapper implements iface_stream_wrapper
if (is_null($rights) || $owner === false) if (is_null($rights) || $owner === false)
{ {
// delete eacl // delete eacl
if (is_null($owner) || $owner == egw_vfs::$user) if (is_null($owner) || $owner == egw_vfs::$user ||
$owner < 0 && egw_vfs::$user && in_array($owner,$GLOBALS['egw']->accounts->memberships(egw_vfs::$user,true)))
{ {
unset(self::$extended_acl[$path]); self::$extended_acl = null; // force new read of eACL, as there could be multiple eACL for that path
} }
$ret = $GLOBALS['egw']->acl->delete_repository(self::EACL_APPNAME,$fs_id,(int)$owner); $ret = $GLOBALS['egw']->acl->delete_repository(self::EACL_APPNAME,$fs_id,(int)$owner);
} }
@ -1416,7 +1417,7 @@ class sqlfs_stream_wrapper implements iface_stream_wrapper
$owner < 0 && egw_vfs::$user && in_array($owner,$GLOBALS['egw']->accounts->memberships(egw_vfs::$user,true)))) $owner < 0 && egw_vfs::$user && in_array($owner,$GLOBALS['egw']->accounts->memberships(egw_vfs::$user,true))))
{ {
// set rights for this class, if applicable // set rights for this class, if applicable
self::$extended_acl[$path] = $rights; self::$extended_acl[$path] |= $rights;
} }
$ret = $GLOBALS['egw']->acl->add_repository(self::EACL_APPNAME,$fs_id,$owner,$rights); $ret = $GLOBALS['egw']->acl->add_repository(self::EACL_APPNAME,$fs_id,$owner,$rights);
} }