/** * Save the user profile changes * * @return void */ public function saveAction() { $response = array('success' => false); $request = $this->getRequest(); $username = $request->getParam('username', ''); if ($this->_isCurrentLogedInUser($username)) { $user = Koryukan_Model_User::getByUsername($username); $user->setFirstName($request->getParam('firstName', '')); $user->setLastName($request->getParam('lastName', '')); $user->setEmail($request->getParam('email', '')); $validator = new KoryukanMembers_UserValidator($this->view); $isValid = $validator->isValid($user); if ($isValid) { $user->save(); $response['success'] = true; $response['messages'] = array($this->view->translate('Your profile has been updated') => "\n"); } else { $response['messages'] = $validator->getMessages(); } } $response['title'] = $this->view->translate('Profile Update'); $this->getResponse()->setHeader('Content-Type', 'text/json')->setBody(Zend_Json::encode($response)); $this->getHelper('viewRenderer')->setNoRender(); $this->_helper->layout->disableLayout(); }
/** * Performs an authentication attempt * * @throws Zend_Auth_Adapter_Exception If authentication cannot * be performed * @return Zend_Auth_Result */ public function authenticate() { $user = Koryukan_Model_User::getByUsername($this->_username); if (isset($user)) { if ($user->validatePassword($this->_password)) { return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $user); } } return new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, null); }
/** * Make sure the user is valid * * @return void */ public function isValid($value) { $valid = true; $this->_user = $value; $namePartsValidator = new Zend_Validate(); $namePartsValidator->addValidator(new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING))->addValidator(new Zend_Validate_Alpha(array('allowWhiteSpace' => true)))->addValidator(new Zend_Validate_StringLength(array('min' => 2))); if (!$namePartsValidator->isValid($this->_user->getFirstName())) { $valid = false; $this->_error($this->_view->translate('The first name must have at least 2 characters and consist only of letters')); } if (!$namePartsValidator->isValid($this->_user->getLastName())) { $valid = false; $this->_error($this->_view->translate('The last name must have at least 2 characters and consist only of letters')); } $emailValidator = new Zend_Validate_EmailAddress(); if (!$emailValidator->isValid($this->_user->getEmail())) { $valid = false; $this->_error($this->_view->translate('You must entre a valid email')); } if ($this->_user->isNew()) { $usernameValidator = new Zend_Validate(); $usernameValidator->addValidator(new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::STRING))->addValidator(new Zend_Validate_Alnum(array('allowWhiteSpace' => false)))->addValidator(new Zend_Validate_StringLength(array('min' => 5))); if (!$usernameValidator->isValid($this->_user->getUsername())) { $this->_error($this->_view->translate('The username must have at least 5 characters and contains no white spaces')); } } return $valid; }
/** * Edit a user * * @return void */ public function edituserAction() { $response = array('success' => false); $request = $this->getRequest(); $operation = $request->getParam('oper', 'edit'); if (0 === strcasecmp('add', $operation)) { $isNew = true; } else { $isNew = false; } if ($isNew) { $user = new Koryukan_Model_User(); $user->setUsername($request->getParam('username')); } else { $user = Koryukan_Model_User::getByUsername($request->getParam('username')); } $user->setFirstName($request->getParam('firstName')); $user->setLastName($request->getParam('lastName')); $user->setEmail($request->getParam('email')); $user->setStatus($request->getParam('status')); $user->addGroup($request->getParam('group')); if ($isNew) { $user->setPassword($request->getParam('password')); } $validator = new KoryukanMembers_UserValidator($this->view); $isValid = $validator->isValid($user); if ($isValid) { $user->save(); $response['success'] = true; } else { $response['messages'] = $validator->getMessages(); } $this->getResponse()->setHeader('Content-Type', 'text/json')->setBody(Zend_Json::encode($response)); $this->getHelper('viewRenderer')->setNoRender(); $this->_helper->layout->disableLayout(); }
/** * Add a user to the acl * * @return void */ private function _addUser(Koryukan_Model_User $user) { $groups = $user->getGroups(); $parents = array(); foreach ($groups as $group) { $parents[] = $group->getRoleId(); } $this->addRole($user, $parents); }