canView() static public method

static public canView ( )
示例#1
0
 /**
  * Get a list of KB/FAQ articles
  * for an authenticated user (or anonymous if allowed from config)
  *
  * @param $params array of options
  * @param $protocol the commonication protocol used
  **/
 static function methodListKnowBaseItems($params, $protocol)
 {
     global $DB, $CFG_GLPI;
     if (isset($params['help'])) {
         return array('start' => 'integer,optional', 'limit' => 'integer,optional', 'contains' => 'string,optional', 'category' => 'string,optional', 'faq' => 'bool,optional', 'type' => 'string,optionnal', 'help' => 'bool,optional');
     }
     if (!Session::getLoginUserID()) {
         $params['faq'] = 1;
     } else {
         if (!isset($params['faq'])) {
             $params['faq'] = 0;
         }
     }
     $kb = new KnowbaseItem();
     if (!$kb->canView()) {
         return self::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED);
     }
     if (!isset($params['category'])) {
         $params['category'] = 0;
     } else {
         if (!is_numeric($params['category'])) {
             return self::Error($protocol, WEBSERVICES_ERROR_BADPARAMETER, '', 'category');
         }
     }
     if (!isset($params['contains'])) {
         $params['contains'] = '';
     }
     if (!isset($params['type'])) {
         $params['type'] == 'search';
     }
     $query = KnowbaseItem::getListRequest(array('faq' => $params['faq'], 'contains' => addslashes($params['contains']), 'knowbaseitemcategories_id' => $params['category']), $params['type']);
     $resp = array();
     if (isset($params['count'])) {
         $resp['count'] = $DB->numrows($DB->query($query));
     } else {
         $start = 0;
         $limit = $CFG_GLPI["list_limit_max"];
         if (isset($params['limit']) && is_numeric($params['limit'])) {
             $limit = $params['limit'];
         }
         if (isset($params['start']) && is_numeric($params['start'])) {
             $start = $params['start'];
         }
         $query .= " LIMIT {$start}, {$limit}";
         foreach ($DB->request($query) as $data) {
             $data['resume'] = Toolbox::unclean_cross_side_scripting_deep($data['answer']);
             $data['resume'] = Html::clean(Html::resume_text(Html::clean($data['resume']), 200));
             $data['resume'] = html_entity_decode($data['resume'], 0, 'UTF-8');
             unset($data['answer']);
             $resp[] = $data;
         }
     }
     return $resp;
 }