Welcome Guest, Not a member yet? Register   Sign In
My "official" ACL plugin for CI - Now with [some] documentation
#1

[eluser]Dean Rantala[/eluser]
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/repositorie...gniter/acl

Once all this is completed, you load it as with any typical CI model:

Code:
$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.
#2

[eluser]Johan André[/eluser]
Wow!
Seems like great work!
I'll check it out and come back with some feedback!
#3

[eluser]Dean Rantala[/eluser]
**UPDATE** 12/28/2009 10:18 PM:

I am putting an initial reference guide together (with full index of all functions, and detailed examples) in the form of plain HTML. Expect something in a couple days Smile

- Dean
#4

[eluser]BrianDHall[/eluser]
*bookmrked* I'd been considering making something like this, looking forward to the possibility that it's one more thing I won't have to do to have an auth system that works for me Smile
#5

[eluser]carnalito[/eluser]
Hi Dean,

great work - i like the 'plugin'-character of this piece of software :-)

I will try to plug it in my app (authentication-library allready built in) and report here what i found.

Maby you can provide the docs in the meantime?!

Regards
#6

[eluser]Dean Rantala[/eluser]
Happy new years to start with...

Lots has happened since the last post.

First, I have beaten the lazy outta myself and got a subversion project set up for this.

Read only public access is available at http://svn.supergluetech.com/repositorie...gniter/acl

Included on the server is a [incomplete] reference manual.htm file that documents EVERY function.

Also in the svn trunk are a handfull of bugfixes - anyone who has downloaded the acl class are advised to grab the latest versions.

I will keep everyone posted!
#7

[eluser]Dean Rantala[/eluser]
One last note.. I have a good handfull of changes that will be committed by noon today (1/5/10) - Please excuse any broken scripts in the meanwhile.

Among the changes are:

-> Ability to auto-hydrate instantiated group/user/role objects
-> Bugfixes to main class
-> Little more documentation
-> Small cleanup
#8

[eluser]ardinotow[/eluser]
Looks promising over my acl library. I'll try this
#9

[eluser]bkirkman[/eluser]
Dean,
Great looking ACL plug-in. Thanks for sharing. I was in the process of writing some of this for a current project, but I came across this and figured it would fill the 90% that most people would need for ACL in a project. It looks nice and clean.

Anyhow, I've come across a bug. The acl model has a bug in lines 812 and 954.

This:
Code:
$this->_table['user_groups']

Should be:
Code:
$this->_table['group_users']

Let us know if there's a better way to contact you with bugs.

Thanks,
Brian
#10

[eluser]Dean Rantala[/eluser]
Thanks for pointing that out!

This has been fixed and commited to SVN.

I am including my email address in the main post for bug reporting. I may eventually set up mantis or something.




Theme © iAndrew 2016 - Forum software by © MyBB