We are all eager to make the UI/UX more intuitive, but re-architecting the core system is not really necessary IMO. The attribute-based access control system we have chosen to implement is very solid, flexible, and extensible. There just needs to be a better way to manage it as you said; we can all agree on that.
Quote from: krisj at Apr 18, 2011, 12:27 PM
Leave the ACLs and their templates/management for advanced users as an optional system to use. Have ACLs pre-assigned and editable directly from the user groups "permissions" tab. that way you could have the ACL menu turned off completely and if needed it could be turned on for advanced users to be able to save preconfigured lists, apply them to groups, merge them etc.
The original intention was for common security scenarios to be packaged as Extras that can be downloaded and installed via Package Management. These "Access Control Templates" would have a set of pre-designed User Groups, Policies, and ACLs to be used as starting points for non-advanced users and eventually could be packaged together with other Extras to make custom distributions of MODX Revolution targeted at specific requirements.
Quote from: krisj at Apr 18, 2011, 12:27 PM
User groups could be hierarchical, having subgroups, where subgroup automatically inherits the parent groups permissions. Have them all in a nice tree. (basically renaming "roles" to subgroups and having an option to assign a user to several subgroups.)
User Groups are already hierarchical, and inheritance for User Groups is on the roadmap, though it will not replace Roles. Roles describe a User’s Role within a specific Group, and there are use cases for having both a hierarchical User Group structure in addition to delineating Roles within each Group.
Quote from: krisj at Apr 18, 2011, 12:27 PM
2. permissions tab - have a single place to manage partical group’s access to anything. It would basically could be visually structured in some accordion menu or tree form again or using a grid, where you can filter all the actions the users are permitted to do in every which way (by context, by category, by keyword etc.)
The idea behind having policies is to abstract the management of specific permissions. This is delegated to the Policy design stage. IOW, you predefine and name your Policies in a way that makes management of permissions per User Group much more intuitive than scanning a list of potentially hundreds of individual permissions.
Quote from: krisj at Apr 18, 2011, 12:27 PM
Users
same with the users. a user editing menu could have perhaps 2 tabs as well.. [1. groups] (and subgroups it belongs to) [2. permissions]
1. groups - again, nice tree view with checkboxes for each
2. permissions - show the full list of effective site wide permissions. the ones inherited by a group membership could be greyed out, but overridable (change colour) as well as completely individual permissions could be set (again, different colour)
Having a read only view of a User’s (or User Group’s) effective permissions based on the assigned Policies sounds like a great feature request actually. This could not be used to manage User "permissions", though in the future Policies will be able to be tied to individual Users directly, so we will also need a way to manage those on the Users (as we do now on the User Groups).