Refactor permissions, ACLs, capabilities

Moin has ACLs - currently just for page access control.

It also has some non-ACL settings for controlling permissions.

Non-page non-ACL permissions

It would be nice to refactor all this to use ACLs, to have better control and less settings.

Plan

superuser setting

Currently, superuser is just a list of names and u.isSuperUser() checks for membership in that list.

As a first easy step, superuser setting could be removed and replaced by a 'super' capability in a global ACL.

old: superuser = [u'JoeDoe', u'JaneDoe', ]

new: acl_rights_foo = u'JoeDoe,JaneDoe:super'

Later, 'super' could be replaced by more fine grained capabilities.

TODO: how do we call that ACL?

backup_users

See section about 'superuser', capability 'backup'.

textchas_disabled_group

See section about 'superuser', capability 'notextcha'.

allow_xslt

XSLT rendering (like raw, unsafe HTML rendering) allowance maybe should be done on a per-page basis.

If you have some pages that are read-only for untrusted users, it can be fine to have html/xslt enabled on them.

OTOH, you don't want xslt/html rendering on pages that are editable by untrusted users.

Capability 'unsafe' could enable raw html / xslt and other unsafe content rendering.

actions_excluded

/!\ Unclear how to handle this best.

We maybe don't want to have 1 capability per action.

So just keep it as it is?

vague idea about acls for actions


See also FeatureRequests/AclExtendedToMakePluginsSecure.


CategoryFeatureRequest

MoinMoin: FeatureRequests/AclRefactoring/NonItemACLs (last edited 2009-07-12 01:23:02 by ReimarBauer)