TLDR; COOPACL is a Joomla! 3 ACL enhancement system plugin to cooperate with existing Joomla! system. It allows user level fine grained access level and can do actual group based access level and both.
My name is Alexandre ELISÉ, I am a French web developer and Joomla! specialist. I needed for a Joomla! project to be able to assign a particular user to an access level. But the actual implementation in Joomla! 3 only allow group based access level. With COOPACL, you can assign any users from your website to one access level. So that they can see just what you want those users to see. Moreover, you can even mix both, groups and users and it just works.
COOPACL is just a core enhancement. After diving into the core code specific to ACL for a whole week, I found something really interesting to play with. The little, innocent, tiny, but insanely powerful "minus sign". Yes, you heard it. The "-" sign just before the userId in identities. This minus sign tells Joomla! that it is dealing with a user not a group. After experimenting a lot. And with trial, error, I finally get the system plugin to work.
The first version was a crazy idea to try to add dynamically custom permissions in access.xml files of all extensions. The plugin was first making a backup copy of every access.xml files. And then allowing the extension developers to implement easily custom actions in their extensions. But I changed my mind and finally got on the path of synced template overrides by a system plugin as the new main idea. To summarize, now you install just one plugin: plg_system_coopacl and voilà!
I would like to thank Mr Randy CAREY, one of the most talented consultant in Joomla! ACL topic. He put me on the right track and helped me dig further by myself. I am really thankful and his awesome videos and articles on Joomla! ACL and Joomla! role based ACL are pure gold!
- PWT ACL
- Joomla! community for being so awesome
- Anyone is more than welcome to contribute to COOPACL project to make it even better. Take care. And have a great day.