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; }
/** * 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); }