From d4564cf018474c451c36a5a2f4373080395013d0 Mon Sep 17 00:00:00 2001 From: mjollnir_ Date: Tue, 18 Dec 2007 20:51:07 +0000 Subject: [PATCH] merged from MOODLE_19_STABLE: moving two functions from admin/roles/manage.php (switch_roles and role_cap_duplicate) to accesslib & added phpdoc. Fixes MDL-12621 --- admin/roles/manage.php | 49 ------------------------------- lib/accesslib.php | 65 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 50 deletions(-) diff --git a/admin/roles/manage.php b/admin/roles/manage.php index 2c5f6675ec..6e955ac828 100755 --- a/admin/roles/manage.php +++ b/admin/roles/manage.php @@ -571,54 +571,5 @@ die; -/// ================ some internal functions ====================//// - -function switch_roles($first, $second) { - $status = true; - //first find temorary sortorder number - $tempsort = count_records('role') + 3; - while (get_record('role','sortorder', $tempsort)) { - $tempsort += 3; - } - - $r1 = new object(); - $r1->id = $first->id; - $r1->sortorder = $tempsort; - $r2 = new object(); - $r2->id = $second->id; - $r2->sortorder = $first->sortorder; - if (!update_record('role', $r1)) { - debugging("Can not update role with ID $r1->id!"); - $status = false; - } - - if (!update_record('role', $r2)) { - debugging("Can not update role with ID $r2->id!"); - $status = false; - } - - $r1->sortorder = $second->sortorder; - if (!update_record('role', $r1)) { - debugging("Can not update role with ID $r1->id!"); - $status = false; - } - - return $status; -} - -// duplicates all the base definitions of a role -function role_cap_duplicate($sourcerole, $targetrole) { - global $CFG; - $systemcontext = get_context_instance(CONTEXT_SYSTEM); - $caps = get_records_sql("SELECT * FROM {$CFG->prefix}role_capabilities - WHERE roleid = $sourcerole->id - AND contextid = $systemcontext->id"); - // adding capabilities - foreach ($caps as $cap) { - unset($cap->id); - $cap->roleid = $targetrole; - insert_record('role_capabilities', $cap); - } -} ?> diff --git a/lib/accesslib.php b/lib/accesslib.php index f03f43b04d..2a1dcc25a2 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -4984,4 +4984,67 @@ function is_contextpath_dirty($pathcontexts, $dirty) { return false; } -?> +/** + * + * switch role order (used in admin/roles/manage.php) + * + * @param int $first id of role to move down + * @param int $second id of role to move up + * + * @return bool success or failure + */ +function switch_roles($first, $second) { + $status = true; + //first find temorary sortorder number + $tempsort = count_records('role') + 3; + while (get_record('role','sortorder', $tempsort)) { + $tempsort += 3; + } + + $r1 = new object(); + $r1->id = $first->id; + $r1->sortorder = $tempsort; + $r2 = new object(); + $r2->id = $second->id; + $r2->sortorder = $first->sortorder; + + if (!update_record('role', $r1)) { + debugging("Can not update role with ID $r1->id!"); + $status = false; + } + + if (!update_record('role', $r2)) { + debugging("Can not update role with ID $r2->id!"); + $status = false; + } + + $r1->sortorder = $second->sortorder; + if (!update_record('role', $r1)) { + debugging("Can not update role with ID $r1->id!"); + $status = false; + } + + return $status; +} + +/** + * duplicates all the base definitions of a role + * + * @param int $sourcerole id of role to copy from + * @param int $targetrole id of role to copy to + * + * @return void + */ +function role_cap_duplicate($sourcerole, $targetrole) { + global $CFG; + $systemcontext = get_context_instance(CONTEXT_SYSTEM); + $caps = get_records_sql("SELECT * FROM {$CFG->prefix}role_capabilities + WHERE roleid = $sourcerole->id + AND contextid = $systemcontext->id"); + // adding capabilities + foreach ($caps as $cap) { + unset($cap->id); + $cap->roleid = $targetrole; + insert_record('role_capabilities', $cap); + } +}?> -- 2.39.5