当前位置: 首页>>代码示例>>PHP>>正文


PHP CSession::getCurrentTask方法代码示例

本文整理汇总了PHP中CSession::getCurrentTask方法的典型用法代码示例。如果您正苦于以下问题:PHP CSession::getCurrentTask方法的具体用法?PHP CSession::getCurrentTask怎么用?PHP CSession::getCurrentTask使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CSession的用法示例。


在下文中一共展示了CSession::getCurrentTask方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getLevelForCurrentTask

 /**
  * Уровень доступа к текущей задаче
  *
  * @return int
  */
 public function getLevelForCurrentTask()
 {
     $level = ACCESS_LEVEL_NO_ACCESS;
     $task = CSession::getCurrentTask();
     if (!is_null($task)) {
         if ($this->getRoles()->hasElement($task->getId())) {
             $personTask = $this->getRoles()->getItem($task->getId());
             $level = $personTask->level;
         }
     }
     return $level;
 }
开发者ID:Trozeman,项目名称:ASUPortalPHP,代码行数:17,代码来源:CUser.class.php

示例2: initGlobalSearchSubform

 /**
  * Собираем данные для сабформы поиска
  */
 private function initGlobalSearchSubform()
 {
     $search = array();
     /**
      * Инициализация левой части с параметрами поиска
      */
     if (CRequest::getGlobalFilterClass() != "") {
         $modelMeta = CCoreObjectsManager::getCoreModel(CRequest::getGlobalFilterClass());
         if (!is_null($modelMeta)) {
             $globalSearch = CRequest::getGlobalFilter();
             if ($globalSearch["field"] !== false) {
                 /**
                  * Получаем название поля, по которому в данный
                  * момент выполняется поиск
                  */
                 $translations = $modelMeta->getTranslationDefault();
                 $filterValue = $globalSearch["value"];
                 if (CRequest::getString("filterLabel") != "") {
                     $filterValue = CRequest::getString("filterLabel");
                 }
                 $search[$globalSearch["field"]] = $filterValue;
                 if (array_key_exists($globalSearch["field"], $translations)) {
                     unset($search[$globalSearch["field"]]);
                     $search[$translations[$globalSearch["field"]]] = $filterValue;
                 }
             }
         }
     }
     $this->setData("__search", $search);
     /**
      * Поиск только в рамках текущей задачи
      */
     $this->setData("__current_task", "");
     if (!is_null(CSession::getCurrentTask())) {
         $this->setData("__current_task", CSession::getCurrentTask()->getId());
     }
     CSession::setCurrentController($this);
     $this->setData("__controller", $this);
 }
开发者ID:Rustam44,项目名称:ASUPortalPHP,代码行数:42,代码来源:CBaseController.class.php

示例3: updateQueryForACLLimitations

 /**
  * Обновление поискового запроса с учетом прав доступа
  * Делается из допущения, что текущая задача - эта задача, по
  * которой выполняется основной запрос
  *
  * @return bool
  */
 private function updateQueryForACLLimitations()
 {
     /**
      * Для начала проверим, что текущая задача определяется
      * Если не определяется, то менять ничего мы не можем -
      * данных недостаточно
      */
     $task = CSession::getCurrentTask();
     if (is_null($task)) {
         return false;
     }
     /**
      * Теперь проверим, что найденная задача связана с какой-либо моделью
      * Если модель определить не можем, то тоже выходим
      */
     $targetModel = null;
     foreach ($task->models->getItems() as $model) {
         if (mb_strtolower($model->getModelTable()) == mb_strtolower($this->getTableName())) {
             $targetModel = $model;
         }
     }
     if (is_null($targetModel)) {
         return false;
     }
     /**
      * Теперь проверим, поддерживает ли эта модель работу с readers/authors-полями
      * Если таких полей нет, то тоже нет смысла что-либо проверять
      */
     if ($targetModel->getReadersFields()->getCount() == 0) {
         return false;
     }
     /**
      * Если у пользователя нет доступа к текущей задаче, то
      * ставим в поля, регламентирующие доступ 0 - нулевого пользователя у нас точно нет
      *
      * Если доступ на чтение/запись только своего, то добавляем в readers-поля
      * id текущего пользователя
      */
     $q = array();
     if (CSession::getCurrentUser()->getLevelForCurrentTask() == ACCESS_LEVEL_NO_ACCESS) {
         foreach ($targetModel->getReadersFields()->getItems() as $field) {
             $q[] = "(" . $this->getTableAlias() . "." . $field->field_name . "= 0)";
         }
     } elseif (CSession::getCurrentUser()->getLevelForCurrentTask() == ACCESS_LEVEL_READ_OWN_ONLY || CSession::getCurrentUser()->getLevelForCurrentTask() == ACCESS_LEVEL_WRITE_OWN_ONLY) {
         foreach ($targetModel->getReadersFields()->getItems() as $field) {
             $q[] = "(" . $this->getTableAlias() . "." . $field->field_name . "=" . CSession::getCurrentPerson()->getId() . ")";
         }
     }
     if (count($q) > 0) {
         $query = $this->getQuery();
         $condition = $query->getCondition();
         if (!is_null($condition)) {
             $condition .= " AND ";
         }
         $condition .= "(" . implode(" OR ", $q) . ")";
         $this->getQuery()->condition($condition);
     }
 }
开发者ID:Rustam44,项目名称:ASUPortalPHP,代码行数:65,代码来源:CRecordSet.class.php


注:本文中的CSession::getCurrentTask方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。