GcConfig\Controller\UserController::editAction PHP Method

editAction() public method

Edit user
public editAction ( ) : Zend\View\Model\ViewModel | array
return Zend\View\Model\ViewModel | array
    public function editAction()
    {
        $userId = $this->getRouteMatch()->getParam('id');
        $userModel = User\Model::fromId($userId);
        if (empty($userModel)) {
            $this->flashMessenger()->addErrorMessage("Can't edit this user");
            return $this->redirect()->toRoute('config/user');
        }
        $form = new UserForm();
        $form->setAttribute('action', $this->url()->fromRoute('config/user/edit', array('id' => $userId)));
        $form->loadValues($userModel);
        if ($this->getRequest()->isPost()) {
            $post = $this->getRequest()->getPost()->toArray();
            if (!empty($post['password'])) {
                $form->passwordRequired();
                $form->getInputFilter()->get('password_confirm')->getValidatorChain()->addValidator(new Identical($post['password']));
            }
            $form->setData($post);
            if ($form->isValid()) {
                $userModel->addData($post);
                $userModel->setActive(empty($post['active']) ? false : $post['active']);
                if (!empty($post['password'])) {
                    $userModel->setPassword($post['password']);
                }
                $userModel->save();
                $this->flashMessenger()->addSuccessMessage('This user has been saved');
                return $this->redirect()->toRoute('config/user/edit', array('id' => $userId));
            }
            $this->flashMessenger()->addErrorMessage('User can not be saved');
        }
        return array('form' => $form);
    }