Beispiel #1
0
 /**
  * Get user info
  *
  * @param integer $userId
  * @param integer $viewerId
  * @param string $viewerNickName
  * @return array
  */
 public function getXmlRpcUserInfo($userId, $viewerId, $viewerNickName)
 {
     if (null != ($userInfo = parent::getUserInfo($userId))) {
         // remove all private fields
         foreach ($this->privateFields as $privateField) {
             if (isset($userInfo[$privateField])) {
                 unset($userInfo[$privateField]);
             }
         }
     }
     // fire the get user info via XmlRpc event
     UserEvent::fireGetUserInfoViaXmlRpcEvent($userInfo['user_id'], $userInfo['nick_name'], $viewerId, $viewerNickName);
     return $userInfo;
 }
Beispiel #2
0
 /**
  * Test delete user home directory
  */
 public function testDeleteUserHomeDirectory()
 {
     // test user data
     $data = ['nick_name' => Rand::getString(32), 'email' => Rand::getString(32), 'api_key' => Rand::getString(32), 'role' => AclModelBase::DEFAULT_ROLE_MEMBER, 'language' => null];
     // create a test user
     $query = $this->userModel->insert()->into('user_list')->values($data);
     $statement = $this->userModel->prepareStatementForSqlObject($query);
     $statement->execute();
     $testUserId = $this->userModel->getAdapter()->getDriver()->getLastGeneratedValue();
     // create a test user's home directory
     $homeUserDirectory = FileManagerBaseModel::getUserBaseFilesDir($testUserId) . '/' . FileManagerBaseModel::getHomeDirectoryName();
     FileSystemUtility::createDir($homeUserDirectory);
     // fire the delete user event
     UserEvent::fireUserDeleteEvent($testUserId, $data);
     // delete the created user
     $query = $this->userModel->delete()->from('user_list')->where(['user_id' => $testUserId]);
     $statement = $this->userModel->prepareStatementForSqlObject($query);
     $statement->execute();
     // home directory must be deleted
     $this->assertFalse(file_exists($homeUserDirectory));
 }
Beispiel #3
0
 /**
  * Validate nickname
  *
  * @param $value
  * @param array $context
  * @return boolean
  */
 public function validateNickname($value, array $context = [])
 {
     return $this->model->isNickNameFree($value, $this->userId);
 }
Beispiel #4
0
 /**
  * Init view helpers
  */
 public function getViewHelperConfig()
 {
     return ['invokables' => ['userLoginWidget' => 'User\\View\\Widget\\UserLoginWidget', 'userRegisterWidget' => 'User\\View\\Widget\\UserRegisterWidget', 'userActivateWidget' => 'User\\View\\Widget\\UserActivateWidget', 'userForgotWidget' => 'User\\View\\Widget\\UserForgotWidget', 'userPasswordResetWidget' => 'User\\View\\Widget\\UserPasswordResetWidget', 'userDeleteWidget' => 'User\\View\\Widget\\UserDeleteWidget', 'userInfoWidget' => 'User\\View\\Widget\\UserInfoWidget', 'userAvatarWidget' => 'User\\View\\Widget\\UserAvatarWidget', 'userDashboardWidget' => 'User\\View\\Widget\\UserDashboardWidget', 'userDashboardUserInfoWidget' => 'User\\View\\Widget\\UserDashboardUserInfoWidget', 'userEditWidget' => 'User\\View\\Widget\\UserEditWidget', 'userDashboardAdministrationWidget' => 'User\\View\\Widget\\UserDashboardAdministrationWidget'], 'factories' => ['userAvatarUrl' => function () {
         $thumbDir = ApplicationService::getResourcesUrl() . UserBaseModel::getThumbnailsDir();
         $avatarDir = ApplicationService::getResourcesUrl() . UserBaseModel::getAvatarsDir();
         return new \User\View\Helper\UserAvatarUrl($thumbDir, $avatarDir);
     }, 'userMenu' => function () {
         $userMenu = $this->serviceLocator->get('Application\\Model\\ModelManager')->getInstance('User\\Model\\UserMenu');
         return new \User\View\Helper\UserMenu($userMenu->getMenu());
     }, 'userIdentity' => function () {
         return new \User\View\Helper\UserIdentity(UserIdentityService::getCurrentUserIdentity());
     }, 'userIsGuest' => function () {
         return new \User\View\Helper\UserIsGuest(UserIdentityService::isGuest());
     }]];
 }
Beispiel #5
0
 /**
  * Get form instance
  *
  * @return object
  */
 public function getForm()
 {
     // get form builder
     if (!$this->form) {
         // remove the captcha field
         if (!$this->isCaptchaEnabled) {
             unset($this->formElements['captcha']);
         }
         // skip some required flags
         if ($this->userId) {
             $this->formElements['password']['required'] = false;
             $this->formElements['confirm_password']['required'] = false;
             $this->formElements['avatar']['required'] = false;
         }
         // add preview for the avatar
         if ($this->avatar) {
             $this->formElements['avatar']['extra_options']['preview'] = true;
             $this->formElements['avatar']['extra_options']['file_url'] = ApplicationService::getResourcesUrl() . UserBaseModel::getThumbnailsDir() . $this->avatar;
         }
         // add descriptions params
         $this->formElements['nick_name']['description_params'] = [SettingService::getSetting('user_nickname_min'), SettingService::getSetting('user_nickname_max')];
         // add extra validators
         $this->formElements['slug']['validators'] = [['name' => 'callback', 'options' => ['callback' => [$this, 'validateSlug'], 'message' => 'Display name already used']]];
         $this->formElements['confirm_password']['validators'] = [['name' => 'callback', 'options' => ['callback' => [$this, 'validatePassword'], 'message' => 'Passwords do not match']]];
         $this->formElements['password']['validators'] = [['name' => 'callback', 'options' => ['callback' => [$this, 'validatePassword'], 'message' => 'Passwords do not match']]];
         // validate email
         $this->formElements['email']['validators'] = [['name' => 'callback', 'options' => ['callback' => [$this, 'validateEmail'], 'message' => 'Email already used']]];
         // validate nickname
         $this->formElements['nick_name']['validators'] = [['name' => 'callback', 'options' => ['callback' => [$this, 'validateNickname'], 'message' => 'Nickname already used']]];
         $this->formElements['nick_name']['max_length'] = (int) SettingService::getSetting('user_nickname_max');
         $this->formElements['nick_name']['min_length'] = (int) SettingService::getSetting('user_nickname_min');
         // fill the form with default values
         $this->formElements['time_zone']['values'] = $this->timeZones;
         $this->form = new ApplicationCustomFormBuilder($this->formName, $this->formElements, $this->translator, $this->ignoredElements, $this->notValidatedElements, $this->method);
     }
     return $this->form;
 }