]> git.mjollnir.org Git - moodle.git/commitdiff
roles explanation: MDL-13538 Integrate into the roles tab bar, and improve wording...
authortjhunt <tjhunt>
Wed, 12 Nov 2008 10:13:43 +0000 (10:13 +0000)
committertjhunt <tjhunt>
Wed, 12 Nov 2008 10:13:43 +0000 (10:13 +0000)
Also, commit the lang strings I missed last time.

admin/roles/explain.php
admin/roles/explainhascapabiltiy.php
admin/roles/tabs.php
admin/settings/users.php
lang/en_utf8/error.php
lang/en_utf8/role.php
theme/standard/styles_layout.css

index e2c4a989be0505eda13b24b440dfa730d0cae817..c21d47f211280fac4c750bc06d12f64cf9de8d87 100755 (executable)
@@ -36,7 +36,7 @@
     $canview = has_any_capability(array('moodle/role:assign', 'moodle/role:safeoverride',
             'moodle/role:override', 'moodle/role:manage'), $context);
     if (!$canview) {
-        print_error('nopermissions', 'error', '', get_string('explainpermissions', 'role'));
+        print_error('nopermissions', 'error', '', get_string('checkpermissions', 'role'));
     }
 
 /// These are needed early because of tabs.php
@@ -56,8 +56,8 @@
     $userselector->set_rows(10);
 
 /// Work out an appropriate page title.
-    $title = get_string('explainpermissionsin', 'role', $contextname);
-    $straction = get_string('explainpermissions', 'role'); // Used by tabs.php
+    $title = get_string('checkpermissionsin', 'role', $contextname);
+    $straction = get_string('checkpermissions', 'role'); // Used by tabs.php
 
 /// Print the header and tabs
     if ($context->contextlevel == CONTEXT_USER) {
         }
 
         $showroles = 1;
-        $currenttab = 'explain';
+        $currenttab = 'check';
         include_once($CFG->dirroot.'/user/tabs.php');
 
     } else if ($context->contextlevel == CONTEXT_SYSTEM) {
-        admin_externalpage_setup('assignroles');
-//        admin_externalpage_setup('explainpermissions');
+        admin_externalpage_setup('checkpermissions');
         admin_externalpage_print_header();
 
     } else if ($context->contextlevel == CONTEXT_COURSE and $context->instanceid == SITEID) {
-        admin_externalpage_setup('explainfrontpagepermissions');
+        admin_externalpage_setup('frontpageroles');
         admin_externalpage_print_header();
-        $currenttab = 'explain';
+        $currenttab = 'check';
         include_once('tabs.php');
 
     } else {
-        $currenttab = 'explain';
+        $currenttab = 'check';
         include_once('tabs.php');
     }
 
 /// Print heading.
-    print_heading_with_help($title, 'explainpermissions');
+    print_heading_with_help($title, 'checkpermissions');
 
 /// If a user has been chosen, show all the permissions for this user.
     $user = $userselector->get_selected_user();
             protected $user;
             protected $fullname;
             protected $baseurl;
+            protected $contextname;
             protected $stryes;
             protected $strno;
             protected $strexplanation;
             private $hascap;
-            public function __construct($context, $user) {
+            public function __construct($context, $user, $contextname) {
                 global $CFG;
                 parent::__construct($context, 'explaincaps');
                 $this->user = $user;
                 $this->fullname = fullname($user);
+                $this->contextname = $contextname;
                 $this->baseurl = $CFG->wwwroot . '/' . $CFG->admin .
                         '/roles/explainhascapabiltiy.php?user=' . $user->id .
                         '&amp;contextid=' . $context->id . '&amp;capability=';
             protected function add_row_cells($capability) {
                 if ($this->hascap) {
                     $result = $this->stryes;
-                    $tooltip = 'explainwhyhascap';
+                    $tooltip = 'whydoesuserhavecap';
                 } else {
                     $result = $this->strno;
-                    $tooltip = 'explainwhyhasnotcap';
+                    $tooltip = 'whydoesusernothavecap';
                 }
                 $a = new stdClass;
-                $a->username = $this->fullname;
+                $a->fullname = $this->fullname;
                 $a->capability = $capability->name;
+                $a->context = $this->contextname;
                 echo '<td>' . $result . '</td>';
                 echo '<td>';
                 link_to_popup_window($this->baseurl . $capability->name, 'hascapabilityexplanation',
 
         require_js(array('yui_yahoo', 'yui_dom', 'yui_event'));
         require_js($CFG->admin . '/roles/roles.js');
-        print_box_start('generalbox boxaligncenter');
+        print_box_start('generalbox boxaligncenter boxwidthwide');
         print_heading(get_string('permissionsforuser', 'role', fullname($user)), '', 3);
 
-        $table = new explain_cabability_table($context, $user);
+        $table = new explain_cabability_table($context, $user, $contextname);
         $table->display();
         print_box_end();
 
index 5dfba3f55d0f4809ee3c65475e00430fff2218c1..44d941212b552808262ce7e727b505b6ad2d7a15 100644 (file)
@@ -145,8 +145,8 @@ $strperm = array(
 );
 
 // Start the output.
-print_header(get_string('explainpermissions', 'role'));
-print_heading(get_string('explainpermissions', 'role'));
+print_header(get_string('explainpermission', 'role'));
+print_heading(get_string('explainpermission', 'role'));
 
 // Print a summary of what we are doing.
 $a = new stdClass;
@@ -155,20 +155,28 @@ if ($userid) {
 } else {
     $a->fullname = get_string('nobody');
 }
-$a->context = reset($contexts)->name;
 $a->capability = $capability;
-echo '<p>' . get_string('explainpermissionsdetails', 'role', $a) . '</p>';
+$a->context = reset($contexts)->name;
+if ($userhascapability) {
+    echo '<p>' . get_string('whydoesuserhavecap', 'role', $a) . '</p>';
+} else {
+    echo '<p>' . get_string('whydoesusernothavecap', 'role', $a) . '</p>';
+}
 
 // Print the table header rows.
 echo '<table class="generaltable explainpermissions"><thead>';
-echo '<tr><th scope="col" rowspan="2" class="header">' . get_string('assignmentcontext', 'role') .
-        '</th><th scope="row" class="header overridecontextheader">' . get_string('overridecontext', 'role') . '</th>';
-foreach ($contexts as $con) {
-    echo '<th scope="col" rowspan="2" class="header overridecontext">' . $con->id . '</th>';
+echo '<tr><th scope="col" colspan="2" class="header assignment">' . get_string('roleassignments', 'role') . '</th>';
+if (count($contexts) > 1) {
+    echo '<th scope="col" colspan="' . (count($contexts) - 1) . '" class="header">' . get_string('overridesbycontext', 'role') . '</th>';
 }
+echo '<th scope="col" rowspan="2" class="header">' . get_string('roledefinitions', 'role') . '</th>';
 echo '</tr>';
-echo '<tr><th scope="col" class="header rolename">' . get_string('role') . '</th></tr>';
-echo '</thead><tbody>';
+echo '<tr class="row2"><th scope="col" class="header assignment">' . get_string('context', 'role') .
+        '</th><th scope="col" class="header assignment">' . get_string('role') . '</th>';
+foreach (array_slice($contexts, 0, count($contexts) - 1) as $con) {
+    echo '<th scope="col" class="header overridecontext">' . $con->id . '</th>';
+}
+echo '</tr></thead><tbody>';
 
 // Now print the bulk of the table.
 foreach ($contexts as $con) {
@@ -179,14 +187,14 @@ foreach ($contexts as $con) {
     } else {
         $ras = array(0);
     }
-    $firstcell = '<th class="cell assignmentcontext" rowspan="' . count($ras) . '">' . $con->id . ' ' . $con->name . '</th>';
+    $firstcell = '<th class="cell assignment" rowspan="' . count($ras) . '">' . $con->id . ' ' . $con->name . '</th>';
     $rowclass = ' class="newcontext"';
     foreach ($ras as $roleid) {
         $extraclass = '';
         if (!$roleid) {
             $extraclass = ' noroles';
         }
-        echo '<tr' . $rowclass . '>' . $firstcell . '<th class="cell rolename' . $extraclass . '" scope="row">' . $rolenames[$roleid] . '</th>';
+        echo '<tr' . $rowclass . '>' . $firstcell . '<th class="cell assignment' . $extraclass . '" scope="row">' . $rolenames[$roleid] . '</th>';
         foreach ($contexts as $ocon) {
             if ($roleid == 0) {
                 $perm = '';
index 0362c576ac1ac3da6d0967b22ce5281b1e7db6e0..0819694fd344fe7d8ea9efaeef36a03dc1da3037 100755 (executable)
@@ -157,11 +157,11 @@ if ($context->contextlevel != CONTEXT_SYSTEM) {    // Print tabs for anything ex
 
     }
 
-    if (!empty($assignableroles)) {
+    if (!empty($assignableroles) || $currenttab=='assign') {
         $toprow[] = new tabobject('assign',
                         $CFG->wwwroot.'/'.$CFG->admin.'/roles/assign.php?contextid='.$context->id,
                         get_string('localroles', 'role'),
-                        get_string('showallroles', 'role'),
+                        '',
                         true);
     }
 
@@ -169,7 +169,16 @@ if ($context->contextlevel != CONTEXT_SYSTEM) {    // Print tabs for anything ex
         $toprow[] = new tabobject('override',
                         $CFG->wwwroot.'/'.$CFG->admin.'/roles/override.php?contextid='.$context->id,
                         get_string('overridepermissions', 'role'),
-                        get_string('showallroles', 'role'),
+                        '',
+                        true);
+    }
+
+    if (has_any_capability(array('moodle/role:assign', 'moodle/role:safeoverride',
+            'moodle/role:override', 'moodle/role:assign'), $context)) {
+        $toprow[] = new tabobject('check',
+                        $CFG->wwwroot.'/'.$CFG->admin.'/roles/explain.php?contextid='.$context->id,
+                        get_string('checkpermissions', 'role'),
+                        '',
                         true);
     }
 
index 7bae7c85406b1c4091b7c4e57b5733bfe632043e..39d983bc5d78a9b1efd91b0db0e23c51a51a88cf 100644 (file)
@@ -81,9 +81,6 @@ if ($hassiteconfig
 
     // stuff under the "roles" subcategory
     $ADMIN->add('users', new admin_category('roles', get_string('permissions', 'role')));
-    $ADMIN->add('roles', new admin_externalpage('defineroles', get_string('defineroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/manage.php", 'moodle/role:manage'));
-    $ADMIN->add('roles', new admin_externalpage('assignroles', get_string('assignglobalroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/assign.php?contextid=".$systemcontext->id, 'moodle/role:assign'));
-
 
     // "userpolicies" settingpage
     $temp = new admin_settingpage('userpolicies', get_string('userpolicies', 'admin'));
@@ -170,9 +167,12 @@ if ($hassiteconfig
                 get_string('extrauserselectorfields', 'admin'), get_string('configextrauserselectorfields', 'admin'), array('email' => '1'),
                 array('email' => get_string('email'), 'idnumber' => get_string('idnumber'), 'username' => get_string('username'), )));
     }
-
     $ADMIN->add('roles', $temp);
 
+    $ADMIN->add('roles', new admin_externalpage('defineroles', get_string('defineroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/manage.php", 'moodle/role:manage'));
+    $ADMIN->add('roles', new admin_externalpage('assignroles', get_string('assignglobalroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/assign.php?contextid=".$systemcontext->id, 'moodle/role:assign'));
+    $ADMIN->add('roles', new admin_externalpage('checkpermissions', get_string('checkglobalpermissions', 'role'), "$CFG->wwwroot/$CFG->admin/roles/explain.php?contextid=".$systemcontext->id, array('moodle/role:assign', 'moodle/role:safeoverride', 'moodle/role:override', 'moodle/role:manage')));
+
 } // end of speedup
 
 ?>
index 7d41d3585ecea6de5ca1dfe231374e500c5b4e9a..e9365951751e62c9255514591e0bccb2096c1275 100644 (file)
@@ -23,6 +23,7 @@ $string['cannotassignanthing'] = 'Cannot assign moodle/site:doanything';
 $string['cannotassignrole'] = 'Cannot assign role in course';
 $string['cannotassignrolehere'] = 'You are not allowed to assign this role (id = $a->roleid) in this context ($a->context)';
 $string['cannotassignselfasparent'] = 'Cannot assign self as parent!';
+$string['cannotcallusgetselecteduser'] = 'You cannot called user_selector::get_selected_user if multiselect is true.';
 $string['cannotcallscript'] = 'You cannot call this script in that way';
 $string['cannotcreatebackupdir'] = 'Could not create backupdata folder.  The site administrator needs to fix the file permissions';
 $string['cannotcreatecategory'] = 'The category was not inserted';
@@ -445,6 +446,7 @@ $string['usernotrenamedoff'] = 'User not renamed - renaming not allowed';
 $string['usernotupdatedadmin'] = 'Cannot update admin accounts';
 $string['usernotupdatederror'] = 'User not updated - error';
 $string['usernotupdatednotexists'] = 'User not updated - does not exist';
+$string['userselectortoomany'] = 'user_selector got more than one selected user, even though multiselect is false.';
 $string['updatersserror'] = 'There was an error trying to update RSS feed with id: $a';
 $string['upgradeversionfail'] = 'Upgrade of backup system failed! (Could not update version in config table.)';
 $string['upgradefail'] = 'Upgrade failed! $a';
index 6b8782b74fb6f669eca4d0d507b014e27b7ce67d..cb64fb68f76818e62f1d796e7ac0f842d94e9de9 100644 (file)
@@ -5,6 +5,7 @@
 $string['addrole'] = 'Add a new role';
 $string['allow'] = 'Allow';
 $string['allowassign'] = 'Allow role assignments';
+$string['allowed'] = 'Allowed';
 $string['allowoverride'] = 'Allow role overrides';
 $string['allsiteusers'] = 'All site users';
 $string['assignanotherrole'] = 'Assign another role';
@@ -31,6 +32,9 @@ $string['category:create'] = 'Create categories';
 $string['category:delete'] = 'Delete categories';
 $string['category:update'] = 'Update categories';
 $string['category:visibility'] = 'See hidden categories';
+$string['checkglobalpermissions'] = 'Check system permissions';
+$string['checkpermissions'] = 'Check permissions';
+$string['checkpermissionsin'] = 'Check permissions in $a';
 $string['chooseroletoassign'] = 'Please choose a role to assign';
 $string['context'] = 'Context';
 $string['course:activityvisibility'] = 'Hide/show activities';
@@ -74,8 +78,8 @@ $string['errorbadroleshortname'] = 'Incorrect role name';
 $string['errorexistsrolename'] = 'Role name already exists';
 $string['errorexistsroleshortname'] = 'Role name already exists';
 $string['existingusers'] = '$a existing users';
-$string['explainpermissions'] = 'Explain permissions';
-$string['explainpermissionsdetails'] = 'For capability $a->capability in context $a->context when logged in as $a->fullname.';
+$string['explanation'] = 'Explanation';
+$string['explainpermission'] = 'Explain permission';
 $string['explainpermissionsinfo'] = '<p>To use this table:</p><ol><li>First look to see if there are any Prohibits. If there are, has_capability will return false.</li><li>Otherwise, read across the rows, left-to-right, top-to-bottom, and find the first cell where the number of Prevents and Allows are different. If there are more Allows than Prevents in that cell, then has_capability will return true, otherwise it will return false.</li><li>If no cell has different numbers of Prevents and Allows, then has_capability will return false.</li></ol>';
 $string['explainpermissionsdoanything'] = 'Note that this user has the moodle/site:doanything capability, so even though the table above shows that has_capability will return false, this user will actually be deemed to have the capability $a in most circumstances.';
 $string['extusers'] = 'Existing users';
@@ -128,7 +132,9 @@ $string['overridepermissionsforrole'] = 'Override permissions for role \'$a->rol
 $string['overrideroles'] = 'Override roles';
 $string['overriderolesin'] = 'Override roles in $a';
 $string['overrides'] = 'Overrides';
+$string['overridesbycontext'] = 'Overrides (by context)';
 $string['permissions'] = 'Permissions';
+$string['permissionsforuser'] = 'Permissions for user $a';
 $string['potentialusers'] = '$a potential users';
 $string['potusers'] = 'Potential users';
 $string['potusersmatching'] = 'Potential users matching \'$a\'';
@@ -160,12 +166,16 @@ $string['role:switchroles'] = 'Switch to other roles';
 $string['role:unassignself'] = 'Unassign own roles';
 $string['role:viewhiddenassigns'] = 'View hidden role assignments';
 $string['roleassignments'] = 'Role assignments';
+$string['roledefinitions'] = 'Role definitions';
 $string['roles'] = 'Roles';
 $string['roletoassign'] = 'Role to assign';
 $string['roletooverride'] = 'Role to override';
 $string['safeoverridenotice'] = 'Note: Capabilities with higher risks are locked because you are only allowed to override safe capabilities.';
+$string['selectauser'] = 'Select a user';
+$string['selectanotheruser'] = 'Select another user';
 $string['selectrole'] = 'Select a role';
 $string['showallroles'] = 'Show all roles';
+$string['showthisuserspermissions'] = 'Show this user\'s permissions';
 $string['site:accessallgroups'] = 'Access all groups';
 $string['site:approvecourse'] = 'Approve course creation';
 $string['site:backup'] = 'Backup courses';
@@ -205,6 +215,8 @@ $string['userhashiddenassignments'] = 'This user has one or more hidden role ass
 $string['userswiththisrole'] = 'Users with role';
 $string['userswithrole'] = 'All users with a role';
 $string['viewrole'] = 'View role details';
+$string['whydoesuserhavecap'] = 'Why does $a->fullname have capability $a->capability in context $a->context?';
+$string['whydoesusernothavecap'] = 'Why does $a->fullname not have capability $a->capability in context $a->context?';
 $string['xuserswiththerole'] = 'Users with the role \"$a->role\"';
 
 // MNET
index 4f99e6a5c9356242573d86d6feac27d75e4d624e..524863ef8771250c2e0bb1ecb3047ab16e32a0fc 100644 (file)
@@ -1180,22 +1180,17 @@ table.explainpermissions td.cell {
   border-right: 1px solid black;
 }
 table.explainpermissions .newcontext .cell,
-table.explainpermissions th.header.rolename {
+table.explainpermissions .row2 th.header {
     border-top: 1px solid black;
 }
 table.explainpermissions .cell.inherit,
 table.explainpermissions .cell.noroles {
   color: grey;
 }
-table.explainpermissions th.assignmentcontext,
-table.explainpermissions th.rolename {
+table.explainpermissions th.assignment {
   text-align: left;
   padding-left: 0.5em;
 }
-table.explainpermissions th.overridecontextheader {
-  text-align: right;
-  padding-right: 0.5em;
-}
 table.explainpermissions .cell.prohibit {
   font-weight: bold;
 }