コード例 #1
0
 public function process()
 {
     $fields = $this->getProperties();
     if (!$this->validate($fields)) {
         return $this->failure();
     }
     /* create membership */
     /** @var modUserGroupMember $membership */
     $membership = $this->modx->newObject('modUserGroupMember');
     $membership->set('user_group', $this->userGroup->get('id'));
     $membership->set('member', $this->user->get('id'));
     $membership->set('role', $fields['role']);
     $rank = $this->getNewRank();
     $membership->set('rank', $rank);
     /* save membership */
     if ($membership->save() == false) {
         return $this->failure($this->modx->lexicon('user_group_member_err_save'));
     }
     /* set as primary group if the only group for user */
     if ($rank == 0) {
         $this->user->set('primary_group', $this->userGroup->get('id'));
         $this->user->save();
     }
     return $this->success('', $membership);
 }
コード例 #2
0
 public function process()
 {
     $this->verifyManifest();
     $this->getUser();
     $this->validatePassword();
     $this->onBeforeUserActivate();
     /* activate user */
     $this->user->set('active', 1);
     $this->user->set('cachepwd', '');
     if (!$this->user->save()) {
         $this->modx->log(modX::LOG_LEVEL_ERROR, '[Register] Could not save activated user: '******'username'));
         return '';
     }
     /* invoke OnUserActivate event */
     $this->modx->invokeEvent('OnUserActivate', array('user' => &$this->user));
     $this->addSessionContexts();
     $this->redirectBack();
     return '';
 }
コード例 #3
0
ファイル: ResetPassword.php プロジェクト: lokamaya/Login
 /**
  * Change the User's password to the new one
  * @return bool
  */
 public function changePassword()
 {
     $saved = true;
     /* change password */
     $version = $this->modx->getVersionData();
     if (version_compare($version['full_version'], '2.1.0-rc1') >= 0) {
         $this->user->set('password', $this->password);
     } else {
         $this->user->set('password', md5($this->password));
     }
     if (!$this->getProperty('debug', false, 'isset')) {
         $saved = $this->user->save();
     }
     return $saved;
 }
コード例 #4
0
 public function setCachePassword($password)
 {
     /* now set new password to registry to prevent middleman attacks.
      * Will read from the registry on the confirmation page. */
     $this->modx->getService('registry', 'registry.modRegistry');
     $this->modx->registry->addRegister('login', 'registry.modFileRegister');
     $this->modx->registry->login->connect();
     $this->modx->registry->login->subscribe('/useractivation/');
     $this->modx->registry->login->send('/useractivation/', array($this->user->get('username') => $password), array('ttl' => $this->controller->getProperty('activationttl', 180) * 60));
     /* set cachepwd here to prevent re-registration of inactive users */
     $this->user->set('cachepwd', md5($password));
     if ($this->live) {
         $success = $this->user->save();
     } else {
         $success = true;
     }
     if (!$success) {
         $this->modx->log(modX::LOG_LEVEL_ERROR, '[Login] Could not update cachepwd for activation for User: '******'username'));
     }
     return $success;
 }
コード例 #5
0
 /**
  * Set user groups for the user
  * @return array
  */
 public function setUserGroups()
 {
     $memberships = array();
     $groups = $this->getProperty('groups', null);
     if ($groups !== null) {
         $primaryGroupId = 0;
         /* remove prior user group links */
         $oldMemberships = $this->object->getMany('UserGroupMembers');
         /** @var modUserGroupMember $membership */
         foreach ($oldMemberships as $membership) {
             $membership->remove();
         }
         /* create user group links */
         $groupsAdded = array();
         $groups = is_array($groups) ? $groups : $this->modx->fromJSON($groups);
         $idx = 0;
         foreach ($groups as $group) {
             if (in_array($group['usergroup'], $groupsAdded)) {
                 continue;
             }
             $membership = $this->modx->newObject('modUserGroupMember');
             $membership->set('user_group', $group['usergroup']);
             $membership->set('role', $group['role']);
             $membership->set('member', $this->object->get('id'));
             $membership->set('rank', isset($group['rank']) ? $group['rank'] : $idx);
             if (empty($group['rank'])) {
                 $primaryGroupId = $group['usergroup'];
             }
             $memberships[] = $membership;
             $groupsAdded[] = $group['usergroup'];
             $idx++;
         }
         $this->object->addMany($memberships, 'UserGroupMembers');
         $this->object->set('primary_group', $primaryGroupId);
         $this->object->save();
     }
     return $memberships;
 }