Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

acl_sync delete all Plugins and add it back #12

Closed
matus-sabo opened this issue Dec 15, 2011 · 3 comments
Closed

acl_sync delete all Plugins and add it back #12

matus-sabo opened this issue Dec 15, 2011 · 3 comments

Comments

@matus-sabo
Copy link

I run command from shell: ./Console/cake AclExtras.AclExtras aco_sync -v
Output:
Deleted controllers/AclExtras and all children
Deleted controllers/AclManager and all children
Created Aco node: controllers/AclExtras
Created Aco node: controllers/AclManager
Created Aco node: controllers/AclManager/Acl
Created Aco node: controllers/AclManager/Acl/drop
Created Aco node: controllers/AclManager/Acl/drop_perms
Created Aco node: controllers/AclManager/Acl/index
Created Aco node: controllers/AclManager/Acl/permissions
Created Aco node: controllers/AclManager/Acl/sync_acos
Created Aco node: controllers/AclManager/Acl/update_acos
Created Aco node: controllers/AclManager/Acl/update_acos2
Created Aco node: controllers/AclManager/Acl/update_aros

I dont remove plugins above, acl_extras just delete them and after that add it back .. it makes no sense.
I fix it by editing function _updateControllers,
I edit only this part.

    if ($this->_clean) {
        if (!$plugin) {
            $plugins = App::objects('plugin', null, false);
            foreach($plugins as &$one) {
                $one = $one.'Plugin';               
            }
            $controllers = array_merge($controllers, $plugins);
        }

        $controllerFlip = array_flip($controllers);

        $this->Aco->id = $root['Aco']['id'];
        $controllerNodes = $this->Aco->children(null, true);

        foreach ($controllerNodes as $ctrlNode) {
            $name = $ctrlNode['Aco']['alias']. 'Controller';
            $plugin_name = $ctrlNode['Aco']['alias']. 'Plugin';

            if (!isset($controllerFlip[$name]) && !isset($controllerFlip[$plugin_name] )) {

                if ($this->Aco->delete($ctrlNode['Aco']['id'])) {
                    $this->out(__(
                        'Deleted %s and all children',
                        $this->rootNode . '/' . $ctrlNode['Aco']['alias']
                    ), 1, Shell::VERBOSE);
                }
            }
        }
    }

After that acl_extras remove plugin and controllers or actions only when they are really removed from Plugin folder.

@matus-sabo
Copy link
Author

Same issue in cake 2.1.0

Welcome to CakePHP v2.1.0-alpha Console�[0m

App : app

Path: /home/webdev/cakephp21x/app/

Deleted Aco node controllers/Users/UserDetails
Deleted Aco node controllers/Users/Users
Created Aco node: controllers/Users/UserDetails
Created Aco node: controllers/Users/UserDetails/index
Created Aco node: controllers/Users/UserDetails/view
Created Aco node: controllers/Users/UserDetails/add
Created Aco node: controllers/Users/UserDetails/edit
Created Aco node: controllers/Users/UserDetails/delete
Created Aco node: controllers/Users/Users
Created Aco node: controllers/Users/Users/index
Created Aco node: controllers/Users/Users/view
Created Aco node: controllers/Users/Users/add
Created Aco node: controllers/Users/Users/edit
Created Aco node: controllers/Users/Users/delete
Deleted controllers/index and all children
Deleted controllers/view and all children
Deleted controllers/add and all children
Deleted controllers/edit and all children
Deleted controllers/delete and all children

@markstory
Copy link
Owner

Are you using the plugin after the change was made?

@matus-sabo
Copy link
Author

Yes I was using fresh copy. But it happends only when I was using Users plugin from cakedc .. I don't know .. I do not use it anymore so whatever :).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants