From f4d6704d9a00e4dc3a7b4c19e22f3796f49efdb2 Mon Sep 17 00:00:00 2001 From: skodak Date: Thu, 1 Feb 2007 23:15:07 +0000 Subject: [PATCH] MDL-8380 prevent deleting of roles that are used as default site roles for guest, user, notloggedin, etc... --- admin/roles/manage.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/admin/roles/manage.php b/admin/roles/manage.php index 360f4c899a..a645ac09c5 100755 --- a/admin/roles/manage.php +++ b/admin/roles/manage.php @@ -42,6 +42,12 @@ $i++; } + // do not delete these default system roles + $defaultroles = array(); + $defaultroles[] = $CFG->notloggedinroleid; + $defaultroles[] = $CFG->guestroleid; + $defaultroles[] = $CFG->defaultuserroleid; + $defaultroles[] = $CFG->defaultcourseroleid; /// form processing, editing a role, adding a role, deleting a role etc. switch ($action) { @@ -183,6 +189,9 @@ break; case 'delete': + if (in_array($roleid, $defaultroles)) { + error('This role is used as one of the default system roles, it can not be deleted'); + } if ($confirm and data_submitted() and confirm_sesskey()) { if (!delete_role($roleid)) { error('Could not delete role with ID '.$roleid); @@ -384,8 +393,12 @@ $row[2] = s($role->shortname); $row[3] = ''. ''.$stredit.' '; - $row[3] .= ''. - ''.$strdelete.' '; + if (in_array($role->id, $defaultroles)) { + $row[3] .= ' '; + } else { + $row[3] .= ''. + ''.$strdelete.' '; + } if ($role->sortorder != 0) { $row[3] .= ''. ''.$strmoveup.' '; -- 2.39.5