The ACL plugin
The missing ACL plugin that should have come with CI!
The CodeIgniter Acl class implements a robust database-driven access control mechanism that includes users, groups, and roles.
A user can belong to many groups. Any number of roles can be assigned to entire groups, or individual users. The class includes simple but effective password validating/updating and convenient description fields for users, roles, and groups.
Other features include:
-> Simple user password auth (plaintext or md5 [default] - configurable)
-> Strict decoupling of database-specific logic, makes exclusive use of the CI database class
-> Methods to check for user role assignments (direct or inherited via group)
-> Optimized database structure - should easily handle thousands of users/roles/groups
-> Written to follow strict CI coding guidelines (docblocks, indentation, naming, etc)
-> Free as in Beer (GPL v2)
Installation is simple. Download the zip archive attached to this thread. You will copy all the .php files to your application/models directory. Next, import a database schema. The CI Acl class has been tested with MySQL, PostgreSQL, and SQLite. In the acl_scripts folder are .sql files to create the needed tables for each database type (depending on which one you use).
You may also grab the latest from SVN via:
http://svn.supergluetech.com/repositories/codeigniter/acl
Once all this is completed, you load it as with any typical CI model:
$this->load->model('acl');Please refer to the manual.htm file for usage.
Please report any bugs to me via: dean [at] supergluetech.com
Attention
Who’s using the ACL plugin? If you are using the plugin, I would love to hear from you as well as any suggestions and/or improvements that you would like to see.
Also, if anyone is interested in pitching in (especially with documentation), gimme a shout. I would really like to get things polished up.