Example #1
0
 public static function extract($definition, array $data = null)
 {
     $parameters = array();
     $errors = array();
     $data = is_null($data) ? Controller::getPayload() : $data;
     if (!empty($definition['required'])) {
         $required = self::extractDefinition('required', $definition['required'], $data, $errors);
         $parameters = array_merge($parameters, $required);
     }
     if (!count($errors) && !empty($definition['optional'])) {
         $optional = self::extractDefinition('optional', $definition['optional'], $data, $errors);
         $parameters = array_merge($parameters, $optional);
     }
     if (!count($errors)) {
         return $parameters;
     }
     Backend::addError($errors);
     return false;
 }
Example #2
0
 public function post_permissions($component = false)
 {
     $parameters = array();
     $query = new DeleteQuery('Permission');
     $query->filter("`role` != 'nobody'")->filter("`role` != 'superadmin'");
     if ($component) {
         $query->filter('`subject` = :component');
         $parameters[':component'] = class_for_url($component);
     }
     $result = $query->execute($parameters);
     if ($result === false) {
         Backend::addError('Could not empty permissions table');
         return false;
     }
     $permission = new PermissionObj();
     $count = 0;
     foreach (Controller::getPayload() as $key => $roles) {
         if (strpos($key, '::') === false) {
             continue;
         }
         list($subject, $action) = explode('::', $key, 2);
         foreach ($roles as $role => $value) {
             $data = array('subject' => $subject, 'action' => $action, 'role' => $role);
             if ($permission->replace($data)) {
                 $count++;
             }
         }
     }
     return $count;
 }