Perhaps your database is corrupted since last changes.
I would recommend you to fix the tables, remember, this are hasMany relations plus TreeBehaviour, if the action kept out from the controller node for any reason would explain that behaviour.
Luckily, there is someone that thought about this and developed the ACL Manager plugin that allows you to fix this using the console.
https://github.com/FMCorz/AclManager
Download the plugin to your plugins folder.
Load the plugin in your bootstrap if you are not loading all already.
Login to you server and use the console to execute any of the following command:
./Console/cake AclExtras.AclExtras aco_sync
You can get a complete guide for all available commands like this:
./Console/cake AclExtras.AclExtras -h
./Console/cake AclExtras.AclExtras aco_sync -h
Any time, if you can not access to the APP, add Controller to the authorize method in your AppController and then: $this->Auth->allow() so any one with valid auth is valid.
Example, just acl check:
$this->Auth->authorize = array(
'Actions' => array('actionPath' => 'controllers')
);
Example Controller and ACL check:
$this->Auth->authorize = array(
'Controller',
'Actions' => array('actionPath' => 'controllers')
);
Using the second option, you can anytime include $this->Auth->allow() in your controller's beforeFilter to allow access who you want.