示例#1
0
/**
 * Returns an array of role names that have ALL of the the supplied capabilities
 * Uses get_roles_with_caps_in_context(). Returns $allowed minus $forbidden
 *
 * @param object $context
 * @param array $capabilities An array of capabilities
 * @return array of roles with all of the required capabilities
 */
function get_role_names_with_caps_in_context($context, $capabilities)
{
    global $DB;
    $rolesthatcanrate = get_roles_with_caps_in_context($context, $capabilities);
    $allroles = array();
    $roles = $DB->get_records('role', null, 'sortorder DESC');
    foreach ($roles as $roleid => $role) {
        $allroles[$roleid] = $role->name;
    }
    $rolenames = array();
    foreach ($rolesthatcanrate as $r) {
        $rolenames[$r] = $allroles[$r];
    }
    $rolenames = role_fix_names($rolenames, $context);
    return $rolenames;
}
示例#2
0
/**
 * Returns an array of role names that have ALL of the the supplied capabilities
 * Uses get_roles_with_caps_in_context(). Returns $allowed minus $forbidden
 *
 * @param stdClass $context
 * @param array $capabilities An array of capabilities
 * @return array of roles with all of the required capabilities
 */
function get_role_names_with_caps_in_context($context, $capabilities) {
    global $DB;

    $rolesthatcanrate = get_roles_with_caps_in_context($context, $capabilities);
    $allroles = $DB->get_records('role', null, 'sortorder DESC');

    $roles = array();
    foreach ($rolesthatcanrate as $r) {
        $roles[$r] = $allroles[$r];
    }

    return role_fix_names($roles, $context, ROLENAME_ALIAS, true);
}