[dev] Horde 3's 'admin' roles in application context (observed in sesha)
Michael J Rubinsky
mrubinsk at horde.org
Wed Sep 14 18:46:02 UTC 2011
Quoting Ralf Lang <lang at b1-systems.de>:
> I just browsed around the sesha code and noticed that H3's Horde_Auth had the
> capability to promote a user into "admin" role for the current context based
> on a perm. Admin stuff seems to have moved out of Horde_Auth into Horde_Core
> (class Horde_Registry).
>
> In Horde 4 I did "Finer grained Admin privileges through permission api"
> ( http://bugs.horde.org/ticket/9350 ) and it got accepted.
> Originally this was
> a patch targeted at H3 but I think it never went in there for good reasons.
>
> For Sesha in Horde 4 consistency with the same logic would mean to turn all
> Horde_Auth::isAdmin(sesha:admin) calls to registry->isAdmin() || $perms-
>> hasPermission(sesha:administration, ... ) or drop the isAdmin thing
> altogether.
> I am not certain what would be consistent with existing apps.
>
> In Kronolith, global admins or isAdmins seam to have much expanded
> access (but
> not completely - they don't see calendars without show privileges).
>
> However, admins (and only admins) have access to a resource's events.
>
> System shares can also only be edited by isAdmins.
>
> In wicked H4 otoh each item can be edited either by perm or by
> isAdmin(). This
> is consistent with H3 where it used Horde_Auth::isAdmin() but never used the
> permission argument to that method.
>
> 1) Should sesha use permissions or isAdmin or both for "admin role"?
I would say both. IMO $registry->isAdmin() should always infer
$perms->hasAppPermission(...). This way we can say
$registry->isAdmin() can do anything, but
$perms->hasAppPermission(...) can only do the specific things that we
allow.
> 2) Should an app-specific admin permission or a (system share/resource)
> specific admin permission be added to apps which use (system shares/kronolith
> resources)?
For kronolith, at least, my opinion would be to have two specific
perms. A resource perm and system calendar perm. This allows different
people to be allowed to manage resources without them having
permission to change events on system owned shares. These are likely
to be different people in most (larger) organizations.
For other apps, I would say in general that if an app requires some
sort of "admin" role, it should be separate from the
$conf['auth']['administrators'] admins. This provides the most
flexibility in delegating certain tasks to users without giving them
admin access to the whole install.
--
mike
The Horde Project (www.horde.org)
mrubinsk at horde.org
More information about the dev
mailing list