/** * Returns list of recently files by user. * @param mixed|int|User|\CAllUser $user User. * @param array $filter Filter. * @return File[] * @internal */ public function getFileModelListByUser($user, array $filter = array()) { $userId = User::resolveUserId($user); if (!$userId) { $this->errorCollection->addOne(new Error('Could not get user id.')); return array(); } $driver = Driver::getInstance(); $storage = $driver->getStorageByUserId($userId); if (!$storage) { $this->errorCollection->addOne(new Error('Could not get storage by user id.')); return array(); } if ($this->isFirstRun($userId)) { if (!$this->hasData($userId)) { $this->fixColdStart($userId); } $this->saveFirstRun($userId); } $securityContext = $storage->getCurrentUserSecurityContext(); $parameters = array('filter' => array('RECENTLY_USED.USER_ID' => $userId, 'DELETED_TYPE' => ObjectTable::DELETED_TYPE_NONE, 'TYPE' => ObjectTable::TYPE_FILE), 'order' => array('RECENTLY_USED.CREATE_TIME' => 'DESC'), 'limit' => RecentlyUsedTable::MAX_COUNT_FOR_USER); if ($filter) { $parameters['filter'] = array_merge($parameters['filter'], $filter); } $parameters = $driver->getRightsManager()->addRightsCheck($securityContext, $parameters, array('ID', 'CREATED_BY')); return File::getModelList($parameters); }
/** * Checks $user is current user or not. * @param mixed $user User for check (may be userId, \CAllUser). * @return bool */ private function isCurrentUser($user) { global $USER; return $USER instanceof \CAllUser && $USER->getId() && $USER->getId() == UserModel::resolveUserId($user); }
public function __construct($user) { $this->errorCollection = new ErrorCollection(); $this->userId = User::resolveUserId($user); $this->buildDocumentHandlerList(); }
/** * @param \CUser|User|int $user * @return $this */ public function setUser($user) { $this->userId = User::resolveUserId($user); return $this; }