예제 #1
0
 /**
  * @param array $postData
  */
 public static function makeByPostData($postData)
 {
     assert('is_array($postData)');
     $userStatus = new UserStatus();
     if (!isset($postData['userStatus'])) {
         return null;
     } elseif ($postData['userStatus'] == self::ACTIVE) {
         return $userStatus;
     } elseif ($postData['userStatus'] == self::INACTIVE) {
         $userStatus->setInactive();
         return $userStatus;
     } else {
         throw new NotSupportedException();
     }
 }
 public static function processAfterSaveAction(RedBeanModel $model, $attributeValueData)
 {
     assert('$model instanceof User');
     assert('is_array($attributeValueData) && count($attributeValueData) == 1');
     assert('isset($attributeValueData["status"]) && ($attributeValueData["status"] == UserStatusUtil::ACTIVE ||
                 $attributeValueData["status"] == UserStatusUtil::INACTIVE)');
     $userStatus = new UserStatus();
     if ($attributeValueData['status'] == UserStatusUtil::INACTIVE) {
         $userStatus->setInactive();
     }
     UserStatusUtil::resolveUserStatus($model, $userStatus);
 }
 public function testResolveUserStatus()
 {
     $user = UserTestHelper::createBasicUser('statusCheck2');
     $this->assertTrue(Right::NONE == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_WEB));
     $this->assertTrue(Right::NONE == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_MOBILE));
     $this->assertTrue(Right::NONE == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_WEB_API));
     //Set the user to inactive.
     $userStatus = new UserStatus();
     $userStatus->setInactive();
     UserStatusUtil::resolveUserStatus($user, $userStatus);
     $userId = $user->id;
     $user = User::getById($userId);
     $this->assertEquals(UserStatusUtil::INACTIVE, UserStatusUtil::getSelectedValueByUser($user));
     $this->assertTrue(Right::DENY == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_WEB));
     $this->assertTrue(Right::DENY == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_MOBILE));
     $this->assertTrue(Right::DENY == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_WEB_API));
     //Now set the user back to active.
     $userStatus->setActive();
     UserStatusUtil::resolveUserStatus($user, $userStatus);
     $userId = $user->id;
     $user = User::getById($userId);
     $this->assertEquals(UserStatusUtil::ACTIVE, UserStatusUtil::getSelectedValueByUser($user));
     $this->assertTrue(Right::NONE == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_WEB));
     $this->assertTrue(Right::NONE == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_MOBILE));
     $this->assertTrue(Right::NONE == $user->getExplicitActualRight('UsersModule', UsersModule::RIGHT_LOGIN_VIA_WEB_API));
 }