Exemple #1
0
 /**
  * Converts verb masks to array of verbs (string) as needed.
  *
  * @param $method
  *
  * @return string
  */
 public function getMethodAttribute($method)
 {
     if (is_array($method)) {
         return $method;
     } else {
         if (is_string($method)) {
             $method = (int) $method;
         }
     }
     return VerbsMask::maskToArray($method);
 }
 /**
  * {@inheritdoc}
  */
 public function getResources($only_handlers = false)
 {
     if ($only_handlers) {
         return [];
     }
     $refresh = $this->request->getParameterAsBool(ApiOptions::REFRESH);
     $schema = $this->request->getParameter(ApiOptions::SCHEMA, '');
     /** @type TableNameSchema[] $result */
     $result = $this->parent->getTableNames($schema, $refresh);
     $resources = [];
     foreach ($result as $table) {
         $access = $this->getPermissions($table->name);
         if (!empty($access)) {
             $info = $table->toArray();
             $info['access'] = VerbsMask::maskToArray($access);
             $resources[] = $info;
         }
     }
     return $resources;
 }
 public function getResources($only_handlers = false)
 {
     if ($only_handlers) {
         return [];
     }
     $refresh = $this->request->getParameterAsBool('refresh');
     $schema = $this->request->getParameter('schema', '');
     $result = $this->listResources($schema, $refresh);
     $resources = [];
     foreach ($result as $name) {
         $access = $this->getPermissions($name);
         if (!empty($access)) {
             $resources[] = ['name' => $name, 'access' => VerbsMask::maskToArray($access)];
         }
     }
     return $resources;
 }
Exemple #4
0
 /**
  * Handles GET action
  *
  * @return mixed
  */
 protected function handleGET()
 {
     $resources = $this->getResources();
     if (is_array($resources)) {
         $includeAccess = $this->request->getParameterAsBool(ApiOptions::INCLUDE_ACCESS);
         $asList = $this->request->getParameterAsBool(ApiOptions::AS_LIST);
         $idField = $this->request->getParameter(ApiOptions::ID_FIELD, $this->getResourceIdentifier());
         $fields = $this->request->getParameter(ApiOptions::FIELDS);
         if (!$asList && $includeAccess) {
             foreach ($resources as &$resource) {
                 if (is_array($resource)) {
                     $name = ArrayUtils::get($resource, $idField);
                     $resource['access'] = VerbsMask::maskToArray($this->getPermissions($name));
                 }
             }
         }
         return ResourcesWrapper::cleanResources($resources, $asList, $idField, $fields);
     }
     return $resources;
 }