Since you already have experience with the Zend ACL, why not use it in your CodeIgniter project? (Link)
Just set up your roles, resources, and permissions in your "MY_Controller.php" file so they're available to all your controllers. Also set up your user in MY_Controller (e.g. $this->theUser) for the same reason.
Set up classes for your resources in your Libraries folder that "implements Zend_Acl_Resource_Interface" and a "User" class for your user that "implements Zend_Acl_Role_Interface".
After setting up the ACL in MY_Controller, retrieve role(s) for the user from your database and add them to your user:
$roles = $this->theUser->getRoles(); // get the assigned role(s) for the user (array)
$acl->addRole($this->theUser, $roles); // then apply them to the user
With that done, I typically put something like the following at the top of each controller:
if ( !$this->acl->isAllowed($this->theUser, 'article', 'modify') ) {
redirect( '/home', 'refresh' ); // go back home
exit;
}
Don't forget, you can even set up dynamic assertions (i.e. implements Zend_Acl_Assert_Interface) if a permission to a resource requires some logic. I typically put assertion classes immediately following their related resource class.