Beispiel #1
0
 public static function add($name, $description, array $options = array())
 {
     $id = array_key_exists('id', $options) ? $options['id'] : null;
     $active = array_key_exists('active', $options) ? $options['active'] : null;
     $data = array('name' => $name, 'description' => $description, 'active' => $active);
     if (!is_null($active)) {
         $data['id'] = $id;
     }
     $RoleObj = new RoleObj();
     if ($RoleObj->replace($data)) {
         Backend::addSuccess('Added role ' . $data['name']);
         $toret = true;
     } else {
         Backend::addError('Could not add role ' . $data['name']);
         $toret = false;
     }
     return $toret;
 }
Beispiel #2
0
 /**
  * Return all users within a specific role
  */
 public static function withRole($roles)
 {
     if (!is_array($roles)) {
         $roles = array($roles);
     }
     $roleObj = new RoleObj();
     $query = new SelectQuery('Role');
     $query->filter('`name` IN (' . implode(', ', array_pad(array(), count($roles), '?')) . ')');
     $roleObj->read(array('query' => $query, 'parameters' => $roles));
     if (!$roleObj->list) {
         return false;
     }
     $roleIds = array_flatten($roleObj->list, null, 'id');
     $query = self::getQuery();
     $query->distinct()->field('`' . self::getTable() . '`.*')->leftJoin('Assignment', array('`access_type` = "users"', '`access_id` = `' . self::getTable() . '`.`id`'))->filter('`role_id` IN (' . implode(', ', array_pad(array(), count($roleIds), '?')) . ')');
     return $query->fetchAll($roleIds);
 }