Neos\Neos\Controller\Module\Administration\UsersController::updateAccountAction PHP Method

updateAccountAction() public method

Update a given account
public updateAccountAction ( Account $account, array $roleIdentifiers, array $password = [] ) : void
$account Neos\Flow\Security\Account The account to update
$roleIdentifiers array A possibly updated list of roles for the user's primary account
$password array Expects an array in the format array('', '')
return void
    public function updateAccountAction(Account $account, array $roleIdentifiers, array $password = array())
    {
        $user = $this->userService->getUser($account->getAccountIdentifier(), $account->getAuthenticationProviderName());
        if ($user === $this->currentUser) {
            $roles = array();
            foreach ($roleIdentifiers as $roleIdentifier) {
                $roles[$roleIdentifier] = $this->policyService->getRole($roleIdentifier);
            }
            if (!$this->privilegeManager->isPrivilegeTargetGrantedForRoles($roles, 'Neos.Neos:Backend.Module.Administration.Users')) {
                $this->addFlashMessage('With the selected roles the currently logged in user wouldn\'t have access to this module any longer. Please adjust the assigned roles!', 'Don\'t lock yourself out', Message::SEVERITY_WARNING, array(), 1416501197);
                $this->forward('edit', null, null, array('user' => $this->currentUser));
            }
        }
        $password = array_shift($password);
        if (strlen(trim(strval($password))) > 0) {
            $this->userService->setUserPassword($user, $password);
        }
        $this->userService->setRolesForAccount($account, $roleIdentifiers);
        $this->addFlashMessage('The account has been updated.', 'Account updated', Message::SEVERITY_OK);
        $this->redirect('edit', null, null, array('user' => $user));
    }