protected function getNewUser($prefix = 'A')
 {
     $user = new User();
     $user->setId($prefix . '_id');
     $user->setUsername($prefix . '_username');
     $user->setPassword($prefix . '_password');
     $user->setState($prefix . '_state');
     $user->setProperties(['property1', $prefix . '_property1']);
     $user->setProperty('property2', $prefix . '_property2');
     return $user;
 }
Exemple #2
0
 /**
  * testConstruct
  *
  * @covers \RcmUser\User\Entity\ReadOnlyUser::__construct
  * @covers \RcmUser\User\Entity\ReadOnlyUser::populate
  *
  * @return void
  */
 public function testConstruct()
 {
     $user = new User();
     $user->setId('id');
     $user->setUsername('username');
     $user->setPassword('password');
     $user->setState('disabled');
     $user->setName('name');
     $user->setEmail('*****@*****.**');
     $user->setProperties(['A' => 'something']);
     return new ReadOnlyUser($user);
 }
 protected function addUsers($username, $password, $fullname, $email)
 {
     $sm = $this->getServiceLocator();
     /** @var \RcmUser\Service\RcmUserService $userService */
     $userService = $sm->get('RcmUser\\Service\\RcmUserService');
     /** @var \RcmUser\User\Service\UserRoleService $userRoleService */
     $userRoleService = $sm->get('RcmUser\\User\\Service\\UserRoleService');
     /** @var \RcmUser\Acl\Service\AclDataService $aclDataService */
     $aclDataService = $sm->get('RcmUser\\Acl\\AclDataService');
     $user = new User();
     $user->setUsername($username);
     $user->setPassword($password);
     $user->setEmail($email);
     $user->setName($fullname);
     $user->setState('enabled');
     $response = $userService->createUser($user);
     if (!$response->isSuccess()) {
         throw new \Exception(implode("<br />", $response->getMessages()));
     }
     $user = $response->getData();
     $suRoleIdResponse = $aclDataService->getSuperAdminRoleId();
     $suRoleId = $suRoleIdResponse->getData();
     $suRole = new AclRole();
     $suRole->setRoleId($suRoleId);
     $suRole->setDescription('Super Admin Role');
     $response = $aclDataService->createRole($suRole);
     if (!$response->isSuccess()) {
         throw new \Exception(implode("<br />", $response->getMessages()));
     }
     $guestRoleIdResponse = $aclDataService->getGuestRoleId();
     $guestRoleId = $guestRoleIdResponse->getData();
     $guestRole = new AclRole();
     $guestRole->setRoleId($guestRoleId);
     $guestRole->setDescription('Default Guest');
     $response = $aclDataService->createRole($guestRole);
     if (!$response->isSuccess()) {
         throw new \Exception(implode("<br />", $response->getMessages()));
     }
     $response = $userRoleService->addRole($user, $suRoleId);
     if (!$response->isSuccess()) {
         throw new \Exception(implode("<br />", $response->getMessages()));
     }
 }
Exemple #4
0
 /**
  * updateUser
  *
  * @param User $requestUser requestUser
  *
  * @return Result
  */
 public function updateUser(User $requestUser)
 {
     /* <LOW_LEVEL_PREP> */
     // require id
     $id = $requestUser->getId();
     if (empty($id)) {
         return new Result(null, Result::CODE_FAIL, 'User Id required for update.');
     }
     // check if exists
     $existingUserResult = $this->readUser($requestUser);
     if (!$existingUserResult->isSuccess()) {
         // ERROR
         return $existingUserResult;
     }
     $existingUser = $existingUserResult->getUser();
     $existingUser = new ReadOnlyUser($existingUser);
     $requestUser->merge($existingUser);
     $responseUser = new User();
     $responseUser->populate($requestUser);
     $requestUser = new ReadOnlyUser($requestUser);
     $state = $responseUser->getState();
     if (empty($state)) {
         $responseUser->setState($this->getDefaultUserState());
     }
     /* </LOW_LEVEL_PREP> */
     /* @event beforeUpdateUser */
     $results = $this->getEventManager()->trigger('beforeUpdateUser', $this, ['requestUser' => $requestUser, 'responseUser' => $responseUser, 'existingUser' => $existingUser], function ($result) {
         return !$result->isSuccess();
     });
     if ($results->stopped()) {
         return $results->last();
     }
     /* @event updateUser */
     $results = $this->getEventManager()->trigger('updateUser', $this, ['requestUser' => $requestUser, 'responseUser' => $responseUser, 'existingUser' => $existingUser], function ($result) {
         return !$result->isSuccess();
     });
     if ($results->stopped()) {
         $result = $results->last();
         $this->getEventManager()->trigger('updateUserFail', $this, ['result' => $result]);
         return $result;
     }
     $result = new Result($responseUser);
     /* @event updateUser */
     $this->getEventManager()->trigger('updateUserSuccess', $this, ['result' => $result]);
     return $result;
 }
 /**
  * prepareUserUpdate
  *
  * @param User $requestUser  requestUser
  * @param User $responseUser responseUser
  * @param User $existingUser existingUser
  *
  * @return Result
  */
 public function prepareUserUpdate(User $requestUser, User $responseUser, User $existingUser)
 {
     // PASSWORD CHECKS
     $requestPassword = $requestUser->getPassword();
     $existingPassword = $existingUser->getPassword();
     //$hashedPassword = $existingPassword;
     // if password changed
     if ($existingPassword !== $requestPassword) {
         $hashedPassword = $this->getEncryptor()->create($requestPassword);
         $responseUser->setPassword($hashedPassword);
     }
     // STATE
     $requestState = $requestUser->getState();
     $existingState = $existingUser->getState();
     if ($requestState !== $existingState) {
         $responseUser->setState($requestState);
     }
     return new Result($responseUser);
 }
Exemple #6
0
 /**
  * setState
  *
  * @param string $state state
  *
  * @return void
  * @throws \RcmUser\Exception\RcmUserReadOnlyException
  */
 public function setState($state)
 {
     if (!$this->locked) {
         return parent::setState($state);
     }
     throw new RcmUserReadOnlyException('Object is READ ONLY');
 }
Exemple #7
0
 /**
  * testIsEnabled
  *
  * @covers \RcmUser\User\Entity\User::isEnabled
  *
  * @return void
  */
 public function testIsEnabled()
 {
     $user = new User();
     $user->setState(User::STATE_DISABLED);
     $this->assertFalse($user->isEnabled(), 'State check failed.');
 }