Acl\Shell\AclShell::create PHP Method

create() public method

Creates an ARO/ACO node
public create ( ) : void
return void
    public function create()
    {
        extract($this->_dataVars());
        $class = ucfirst($this->args[0]);
        $parent = $this->parseIdentifier($this->args[1]);
        if (!empty($parent) && $parent !== '/' && $parent !== 'root') {
            $parent = $this->_getNodeId($class, $parent);
        } else {
            $parent = null;
        }
        $data = $this->parseIdentifier($this->args[2]);
        if (is_string($data) && $data !== '/') {
            $data = ['alias' => $data];
        } elseif (is_string($data)) {
            $this->error(__d('cake_acl', '/ can not be used as an alias!') . __d('cake_acl', "\t/ is the root, please supply a sub alias"));
        }
        $data['parent_id'] = $parent;
        $entity = $this->Acl->{$class}->newEntity($data);
        if ($this->Acl->{$class}->save($entity)) {
            $this->out(__d('cake_acl', "<success>New {0}</success> {1} created.", [$class, $this->args[2]]), 2);
        } else {
            $this->err(__d('cake_acl', "There was a problem creating a new {0} {1}.", [$class, $this->args[2]]));
        }
    }