GcConfig\Controller\RoleController::editAction PHP Méthode

editAction() public méthode

Edit role
public editAction ( ) : Zend\View\Model\ViewModel | array
Résultat Zend\View\Model\ViewModel | array
    public function editAction()
    {
        $roleId = $this->getRouteMatch()->getParam('id');
        $roleModel = Role\Model::fromId($roleId);
        if (empty($roleModel) or $roleModel->getName() === Role\Model::PROTECTED_NAME) {
            $this->flashMessenger()->addErrorMessage("Can't edit this role");
            return $this->redirect()->toRoute('config/user/role');
        }
        $form = new RoleForm();
        $form->initPermissions($roleModel->getUserPermissions());
        $form->setAttribute('action', $this->url()->fromRoute('config/user/role/edit', array('id' => $roleId)));
        $form->loadValues($roleModel);
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost()->toArray();
            $form->setData($post);
            if ($form->isValid()) {
                $roleModel->addData($form->getInputFilter()->getValues());
                $roleModel->save();
                $this->flashMessenger()->addSuccessMessage('Role saved!');
                return $this->redirect()->toRoute('config/user/role/edit', array('id' => $roleId));
            }
            $this->flashMessenger()->addErrorMessage('Role can not saved!');
            $this->useFlashMessenger();
        }
        return array('form' => $form);
    }