protected function _actionEdit(AnCommandContext $context)
    {
        $data = $context->data;

        dispatch_plugin('user.onBeforeEditPerson', array('data' => $context->data));

        //dont' set the usertype yet, until we find the conditions are met
        $usertype = null;

        if ($data->usertype) {
            $usertype = $data->usertype;
            unset($context->data->usertype);
        }

        if ($data->password) {
            $_SESSION['reset_password_prompt'] = 0;
        }

        $person = parent::_actionEdit($context);

        //add the validations here
        $this->getRepository()
        ->getValidator()
        ->addValidation('givenName', 'required')
        ->addValidation('familyName', 'required')
        ->addValidation('username', 'uniqueness')
        ->addValidation('email', 'uniqueness');

        if ($person->validate() === false) {
            throw new AnErrorException($person->getErrors(), AnHttpResponse::BAD_REQUEST);
        }

        //now check to see if usertype can be set, otherwise the value is unchanged
        if (in_array($usertype, $this->_allowed_user_types) && $person->authorize('changeUsertype')) {
            $person->usertype = $usertype;
        }

        $person->timestamp();

        dispatch_plugin('user.onAfterEditPerson', array('person' => $person));

        $this->setMessage('LIB-AN-PROMPT-UPDATE-SUCCESS', 'success');

        $edit = ($data->password && $data->username) ? 'account' : $this->_request->edit;
        $url = sprintf($person->getURL(false)."&get=settings&edit=%s", $edit);
        $context->response->setRedirect(route($url));

        return $person;
    }
protected function _actionEdit(AnCommandContext $context)
    {
        $data = $context->data;

        dispatch_plugin('user.onBeforeEditPerson', array('data' => $context->data));

        //dont' set the usertype yet, until we find the conditions are met
        $usertype = null;

        if ($data->usertype) {
            $usertype = $data->usertype;
            unset($context->data->usertype);
        }

        if ($data->password) {
            $_SESSION['reset_password_prompt'] = 0;
        }

        $person = parent::_actionEdit($context);

        //add the validations here
        $this->getRepository()
        ->getValidator()
        ->addValidation('givenName', 'required')
        ->addValidation('familyName', 'required')
        ->addValidation('username', 'uniqueness')
        ->addValidation('email', 'uniqueness');

        if ($person->validate() === false) {
            throw new AnErrorException($person->getErrors(), AnHttpResponse::BAD_REQUEST);
        }

        //now check to see if usertype can be set, otherwise the value is unchanged
        if (in_array($usertype, $this->_allowed_user_types) && $person->authorize('changeUsertype')) {
            $person->usertype = $usertype;
        }

        $person->timestamp();

        dispatch_plugin('user.onAfterEditPerson', array('person' => $person));

        $this->setMessage('LIB-AN-PROMPT-UPDATE-SUCCESS', 'success');

        $edit = ($data->password && $data->username) ? 'account' : $this->_request->edit;
        $url = sprintf($person->getURL(false)."&get=settings&edit=%s", $edit);
        $context->response->setRedirect(route($url));

        return $person;
    }
protected function _actionEdit ( AnCommandContext $ context ) { $ data = $ context -> data ; dispatch_plugin ( 'user.onBeforeEditPerson' , array ( 'data' => $ context -> data ) ) ; //dont' set the usertype yet, until we find the conditions are met $ usertype = null ; if ( $ data -> usertype ) { $ usertype = $ data -> usertype ; unset ( $ context -> data -> usertype ) ; } if ( $ data -> password ) { $ _SESSION [ 'reset_password_prompt' ] = 0 ; } $ person = parent :: _actionEdit ( $ context ) ; //add the validations here $ this -> getRepository ( ) -> getValidator ( ) -> addValidation ( 'givenName' , 'required' ) -> addValidation ( 'familyName' , 'required' ) -> addValidation ( 'username' , 'uniqueness' ) -> addValidation ( 'email' , 'uniqueness' ) ; if ( $ person -> validate ( ) === false ) { throw new AnErrorException ( $ person -> getErrors ( ) , AnHttpResponse :: BAD_REQUEST ) ; } //now check to see if usertype can be set, otherwise the value is unchanged if ( in_array ( $ usertype , $ this -> _allowed_user_types ) && $ person -> authorize ( 'changeUsertype' ) ) { $ person -> usertype = $ usertype ; } $ person -> timestamp ( ) ; dispatch_plugin ( 'user.onAfterEditPerson' , array ( 'person' => $ person ) ) ; $ this -> setMessage ( 'LIB-AN-PROMPT-UPDATE-SUCCESS' , 'success' ) ; $ edit = ( $ data -> password && $ data -> username ) ? 'account' : $ this -> _request -> edit ; $ url = sprintf ( $ person -> getURL ( false ) . "&get=settings&edit=%s" , $ edit ) ; $ context -> response -> setRedirect ( route ( $ url ) ) ; return $ person ; }
Edit a person's data and synchronize with the person with the user entity.

@param AnCommandContext $context Context parameter

@return AnDomainEntityAbstract
Edit a person s data and synchronize with the person with the user entity .