function tool_editrolesbycap_get_default_permission($role, $capability) { static $cache = array(); if (empty($role->archetype)) { return CAP_INHERIT; } if (isset($cache[$capability->name][$role->archetype])) { return $cache[$capability->name][$role->archetype]; } $defaults = get_default_capabilities($role->archetype); if (isset($defaults[$capability->name])) { $cache[$capability->name][$role->archetype] = $defaults[$capability->name]; } else { $cache[$capability->name][$role->archetype] = CAP_INHERIT; } return $cache[$capability->name][$role->archetype]; }
/** * Reset role capabilities to default according to selected role archetype. * If no archetype selected, removes all capabilities. * * @param int $roleid * @return void */ function reset_role_capabilities($roleid) { global $DB; $role = $DB->get_record('role', array('id' => $roleid), '*', MUST_EXIST); $defaultcaps = get_default_capabilities($role->archetype); $systemcontext = context_system::instance(); $DB->delete_records('role_capabilities', array('roleid' => $roleid)); foreach ($defaultcaps as $cap => $permission) { assign_capability($cap, $permission, $roleid, $systemcontext->id); } }
protected function load_parent_permissions() { $this->parentpermissions = get_default_capabilities($this->role->archetype); }
/** * Reset role capabilitites to default according to selected legacy capability. * If several legacy caps selected, use the first from get_default_capabilities. * If no legacy selected, removes all capabilities. * * @param int @roleid */ function reset_role_capabilities($roleid) { global $DB; $sitecontext = get_context_instance(CONTEXT_SYSTEM); $legacyroles = get_legacy_roles(); $defaultcaps = array(); foreach ($legacyroles as $ltype => $lcap) { $localoverride = get_local_override($roleid, $sitecontext->id, $lcap); if (!empty($localoverride->permission) and $localoverride->permission == CAP_ALLOW) { //choose first selected legacy capability $defaultcaps = get_default_capabilities($ltype); break; } } $DB->delete_records('role_capabilities', array('roleid' => $roleid)); if (!empty($defaultcaps)) { foreach ($defaultcaps as $cap => $permission) { assign_capability($cap, $permission, $roleid, $sitecontext->id); } } }
protected function load_parent_permissions() { if ($this->role->legacytype) { $this->parentpermissions = get_default_capabilities($this->role->legacytype); } else { $this->parentpermissions = array(); } }