コード例 #1
0
ファイル: UsersService.php プロジェクト: kant312/sop
 /**
  * Returns a user by their UID.
  *
  * ```php
  * $user = craft()->users->getUserByUid($userUid);
  * ```
  *
  * @param int $uid The user’s UID.
  *
  * @return UserModel|null The user with the given UID, or `null` if a user could not be found.
  */
 public function getUserByUid($uid)
 {
     $userRecord = UserRecord::model()->findByAttributes(array('uid' => $uid));
     if ($userRecord) {
         return UserModel::populateModel($userRecord);
     }
     return null;
 }
コード例 #2
0
 /**
  * Handle the onBeforeSaveUser event.
  *
  * @param Event $event
  */
 public function onBeforeSaveUser(Event $event)
 {
     // Get user id to save
     $id = $event->params['user']->id;
     if (!$event->params['isNewUser']) {
         // Get old user from db
         $user = UserModel::populateModel(UserRecord::model()->findById($id));
         // Get fields
         $this->before = $this->fields($user);
     } else {
         // Get fields
         $this->before = $this->fields($event->params['user'], true);
     }
 }
コード例 #3
0
 /**
  * Gets the currently logged-in user.
  *
  * @return UserModel|null
  */
 public function getUser()
 {
     // Does a user appear to be logged in?
     if (Craft::isInstalled() && $this->getState('__id') !== null) {
         if (!isset($this->_user)) {
             $userRow = $this->_getUserRow($this->getId());
             if ($userRow) {
                 $this->_userModel = UserModel::populateModel($userRow);
             } else {
                 $this->_userModel = false;
             }
         }
         return $this->_userModel ? $this->_userModel : null;
     }
 }
コード例 #4
0
 /**
  * Returns the currently logged-in user.
  *
  * @return UserModel|null The currently logged-in user, or `null`.
  */
 public function getUser()
 {
     // Does a user appear to be logged in?
     if (craft()->isInstalled() && !$this->getIsGuest()) {
         if (!isset($this->_userModel)) {
             $userRow = $this->_getValidUserRow($this->getId());
             // Only return active and pending users.
             if ($userRow) {
                 $this->_userModel = UserModel::populateModel($userRow);
             } else {
                 $this->_userModel = false;
             }
         }
         return $this->_userModel ? $this->_userModel : null;
     }
 }
コード例 #5
0
 /**
  * @inheritDoc IElementType::populateElementModel()
  *
  * @param array $row
  *
  * @return array
  */
 public function populateElementModel($row)
 {
     return UserModel::populateModel($row);
 }
コード例 #6
0
ファイル: UserSessionService.php プロジェクト: kant312/sop
 /**
  * Returns the currently logged-in user.
  *
  * @return UserModel|null The currently logged-in user, or `null`.
  */
 public function getUser()
 {
     // Does a user appear to be logged in?
     if (craft()->isInstalled() && !$this->getIsGuest()) {
         if (!isset($this->_userModel)) {
             $userRow = $this->_getUserRow($this->getId());
             if ($userRow && $userRow['status'] == UserStatus::Active || $userRow['status'] == UserStatus::Pending) {
                 $this->_userModel = UserModel::populateModel($userRow);
             } else {
                 $this->_userModel = false;
             }
         }
         return $this->_userModel ? $this->_userModel : null;
     }
 }
コード例 #7
0
 /**
  * Returns the currently logged-in user.
  *
  * @return UserModel|null The currently logged-in user, or `null`.
  */
 public function getUser()
 {
     // Does a user appear to be logged in?
     if (craft()->isInstalled() && !$this->getIsGuest()) {
         if (!isset($this->_userModel)) {
             $userRow = $this->_getUserRow($this->getId());
             // Only return active and pending users.
             if ($userRow) {
                 $validUser = false;
                 // Keeping extra logic here so the upgrade to 2.3 won't freak.
                 // First the pre 2.3 check.
                 if (isset($userRow['status']) && $userRow['status'] == UserStatus::Active || isset($userRow['status']) && $userRow['status'] == UserStatus::Pending) {
                     $validUser = true;
                 }
                 // Now the 2.3 check. If all 3 of these are false, then the user is active or pending.
                 if (isset($userRow['suspended']) && isset($userRow['archived']) && isset($userRow['locked']) && (!$userRow['suspended'] && !$userRow['archived'] && !$userRow['locked'])) {
                     $validUser = true;
                 }
                 if ($validUser) {
                     $this->_userModel = UserModel::populateModel($userRow);
                 }
             } else {
                 $this->_userModel = false;
             }
         }
         return $this->_userModel ? $this->_userModel : null;
     }
 }
コード例 #8
0
 /**
  * Returns the currently logged-in user.
  *
  * @return UserModel|null The currently logged-in user, or `null`.
  */
 public function getUser()
 {
     // Does a user appear to be logged in?
     if (craft()->isInstalled() && !$this->getIsGuest()) {
         if (!isset($this->_userModel)) {
             $userRow = $this->_getUserRow($this->getId());
             // Only return active and pending users.
             if ($userRow) {
                 $validUser = false;
                 // TODO: Remove after next breakpoint.
                 // Keeping extra logic here so the upgrade to 2.3 won't freak.
                 // First the pre 2.3 check.
                 if (isset($userRow['status']) && $userRow['status'] == UserStatus::Active || isset($userRow['status']) && $userRow['status'] == UserStatus::Pending) {
                     $validUser = true;
                 }
                 // Now the 2.3 check. If all 3 of these are false, then the user is active or pending.
                 if (isset($userRow['suspended']) && isset($userRow['archived']) && isset($userRow['locked']) && (!$userRow['suspended'] && !$userRow['archived'] && !$userRow['locked'])) {
                     $validUser = true;
                 }
                 // One last attempt.
                 if (!$validUser) {
                     // If the previous user was an admin and we're impersonating the current user.
                     if ($previousUserId = craft()->httpSession->get(static::USER_IMPERSONATE_KEY)) {
                         $previousUser = craft()->users->getUserById($previousUserId);
                         if ($previousUser && $previousUser->admin) {
                             $validUser = true;
                         }
                     }
                 }
                 if ($validUser) {
                     $this->_userModel = UserModel::populateModel($userRow);
                 }
             } else {
                 $this->_userModel = false;
             }
         }
         return $this->_userModel ? $this->_userModel : null;
     }
 }
コード例 #9
0
 /**
  * Finds a user.
  *
  * @param UserCriteria|null $criteria
  * @return array
  */
 public function findUser(UserCriteria $criteria = null)
 {
     if (!$criteria) {
         $criteria = new UserCriteria();
     }
     $query = craft()->db->createCommand()->select('u.*')->from('users u');
     $this->_applyUserConditions($query, $criteria);
     $result = $query->queryRow();
     if ($result) {
         return UserModel::populateModel($result);
     }
 }
コード例 #10
0
 /**
  * Initialize the category saving/deleting events.
  */
 public function log()
 {
     // Get values before saving
     craft()->on('users.onBeforeSaveUser', function (Event $event) {
         // Get user id to save
         $id = $event->params['user']->id;
         if (!$event->params['isNewUser']) {
             // Get old user from db
             $user = UserModel::populateModel(UserRecord::model()->findById($id));
             // Get fields
             craft()->auditLog_user->before = craft()->auditLog_user->fields($user);
         } else {
             // Get fields
             craft()->auditLog_user->before = craft()->auditLog_user->fields($event->params['user'], true);
         }
     });
     // Get values after saving
     craft()->on('users.onSaveUser', function (Event $event) {
         // Get saved user
         $user = $event->params['user'];
         // Get fields
         craft()->auditLog_user->after = craft()->auditLog_user->fields($user);
         // New row
         $log = new AuditLogRecord();
         // Set user id
         $log->userId = craft()->userSession->getUser() ? craft()->userSession->getUser()->id : $user->id;
         // Set element type
         $log->type = ElementType::User;
         // Set origin
         $log->origin = craft()->request->isCpRequest() ? craft()->config->get('cpTrigger') . '/' . craft()->request->path : craft()->request->path;
         // Set before
         $log->before = craft()->auditLog_user->before;
         // Set after
         $log->after = craft()->auditLog_user->after;
         // Set status
         $log->status = $event->params['isNewUser'] ? AuditLogModel::CREATED : AuditLogModel::MODIFIED;
         // Save row
         $log->save(false);
         // Callback
         craft()->auditLog->elementHasChanged(ElementType::User, $user->id, craft()->auditLog_user->before, craft()->auditLog_user->after);
     });
     // Get values before deleting
     craft()->on('users.onBeforeDeleteUser', function (Event $event) {
         // Get deleted user
         $user = $event->params['user'];
         // Get fields
         craft()->auditLog_user->before = craft()->auditLog_user->fields($user);
         craft()->auditLog_user->after = craft()->auditLog_user->fields($user, true);
         // New row
         $log = new AuditLogRecord();
         // Set user id
         $log->userId = craft()->userSession->getUser()->id;
         // Set element type
         $log->type = ElementType::User;
         // Set origin
         $log->origin = craft()->request->isCpRequest() ? craft()->config->get('cpTrigger') . '/' . craft()->request->path : craft()->request->path;
         // Set before
         $log->before = craft()->auditLog_user->before;
         // Set after
         $log->after = craft()->auditLog_user->after;
         // Set status
         $log->status = AuditLogModel::DELETED;
         // Save row
         $log->save(false);
         // Callback
         craft()->auditLog->elementHasChanged(ElementType::User, $user->id, craft()->auditLog_user->before, craft()->auditLog_user->after);
     });
 }