]> git.mjollnir.org Git - moodle.git/commitdiff
"MDL-17143, don't display the user description at all when user isn't enrolled in...
authordongsheng <dongsheng>
Mon, 10 Nov 2008 03:06:27 +0000 (03:06 +0000)
committerdongsheng <dongsheng>
Mon, 10 Nov 2008 03:06:27 +0000 (03:06 +0000)
admin/settings/security.php
lang/en_utf8/admin.php
lang/en_utf8/moodle.php
user/edit_form.php
user/editadvanced_form.php
user/view.php

index 102900ea34f263d4db6105932e6c003385dc0137..c603abe98365afd03967444346269aab30cba0d5 100644 (file)
@@ -39,6 +39,9 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
     $temp->add(new admin_setting_configcheckbox('extendedusernamechars', get_string('extendedusernamechars', 'admin'), get_string('configextendedusernamechars', 'admin'), 0));
     $temp->add(new admin_setting_configtext('sitepolicy', get_string('sitepolicy', 'admin'), get_string('configsitepolicy', 'admin'), '', PARAM_RAW));
     $temp->add(new admin_setting_configcheckbox('keeptagnamecase', get_string('keeptagnamecase','admin'),get_string('configkeeptagnamecase', 'admin'),'1'));
+
+    $temp->add(new admin_setting_configcheckbox('profilesforenrolledusersonly', get_string('profilesforenrolledusersonly','admin'),get_string('configprofilesforenrolledusersonly', 'admin'),'1'));
+
     $temp->add(new admin_setting_configcheckbox('cronclionly', get_string('cronclionly', 'admin'), get_string('configcronclionly', 'admin'), 0));
     $temp->add(new admin_setting_configpasswordunmask('cronremotepassword', get_string('cronremotepassword', 'admin'), get_string('configcronremotepassword', 'admin'), ''));
 
index be20575097c565e7597409e3ccdedc40eb6b6d4f..68c8e65fef36f613bd6ebd5407bc3b0474e83425 100644 (file)
@@ -189,6 +189,11 @@ $string['configoverride'] = 'Defined in config.php';
 $string['configpathtoclam'] = 'Path to clam AV.  Probably something like /usr/bin/clamscan or /usr/bin/clamdscan. You need this in order for clam AV to run.';
 $string['configpathtodu'] = 'Path to du. Probably something like /usr/bin/du. If you enter this, pages that display directory contents will run much faster for directories with a lot of files.';
 $string['configperfdebug'] = 'If you turn this on, performance info will be printed in the footer of the standard theme';
+$string['configprofilesforenrolledusersonly'] = '
+<ul>
+<li>When showing the profile page, if a courseid isn\'t defined (this is the public view) AND the user is not enrolled in any courses AND this setting is set as true then replace the profile description won\'t display.</li>
+<li>When editing the profile page, if the description is blank AND the user is not enrolled in any courses AND this setting is set as true then completely hide the description field from the editing page.</li>
+</ul>';
 $string['configprotectusernames'] = 'By default forget_password.php does not display any hints that would allow guessing of usernames or email addresses.';
 $string['configproxybypass'] = 'Comma separated list of (partial) hostnames or IPs that should bypass proxy (e.g., 192.168., .mydomain.com)';
 $string['configproxyhost'] = 'If this <b>server</b> needs to use a proxy computer (eg a firewall) to access the Internet, then provide the proxy hostname here.  Otherwise leave it blank.';
@@ -613,6 +618,7 @@ $string['profilefieldtypetextarea'] = 'Text area';
 $string['profilefieldmaxlength'] = 'Maximum length';
 $string['profilefieldispassword'] = 'Is this a password field?';
 $string['profileforceunique'] = 'Should the data be unique?';
+$string['profilesforenrolledusersonly'] = 'Profiles for enrolled users only';
 $string['profileinvaliddata'] = 'Invalid value';
 $string['profilelocked'] = 'Is this field locked?';
 $string['profilemenudefaultnotinoptions'] = 'The default value is not one of the options';
index 4965e7a71f8cfd4048d7bd24cd17176106263b41..125fbd868a1789fb28f7af5e4ca0f073858c43fd 100644 (file)
@@ -1220,6 +1220,7 @@ $string['previouslyselectedusers'] = 'Previously selected users not matching \'$
 $string['previoussection'] = 'Previous section';
 $string['primaryadminsetup'] = 'Setup administrator account';
 $string['profile'] = 'Profile';
+$string['profilenotshown'] = 'This profile description will not be shown until this person is enrolled in at least one course.';
 $string['publicdirectory'] = 'Public directory';
 $string['publicdirectory0'] = 'Please do not publish this site';
 $string['publicdirectory1'] = 'Publish the site name only';
index 45282dc41bb44db468cae959c249a4fe5bd24ce7..920ec7edcfdde21d528a0ac58d42c3da955ca8e5 100644 (file)
@@ -60,8 +60,14 @@ class user_edit_form extends moodleform {
             }
         }
 
+
         if ($user = $DB->get_record('user', array('id'=>$userid))) {
 
+            // remove description
+            if (!$DB->get_record('role_assignments', array('userid'=>$userid)) && empty($user->description) && $CFG->profilesforenrolledusersonly) {
+                $mform->removeElement('description');
+            }
+
             // print picture
             if (!empty($CFG->gdversion)) {
                 $image_el =& $mform->getElement('currentpicture');
index 9ba149862e03f735acfd84e6439c6b8ceb59df78..03b3c627c4a6674ea47088a14cb43046a806f86a 100644 (file)
@@ -75,6 +75,13 @@ class user_editadvanced_form extends moodleform {
             }
         }
 
+        $sitecontext = get_context_instance(CONTEXT_SYSTEM);
+        $can_edit_user = has_capability('moodle/user:update', $sitecontext);
+        // remove description
+        if (!$DB->get_record('role_assignments', array('userid'=>$userid)) && empty($user->description) && $CFG->profilesforenrolledusersonly && !$can_edit_user) {
+            $mform->removeElement('description');
+        }
+
         // user can not change own auth method
         if ($userid == $USER->id) {
             $mform->hardFreeze('auth');
index c9dc4784c78fb8feede04c9d3864dc4da25cec69..74a37d5fefb749df40e519b777f75fce0ebef30d 100644 (file)
     // Print the description
 
     if ($user->description && !isset($hiddenfields['description'])) {
-        echo format_text($user->description, FORMAT_MOODLE)."<hr />";
+        $has_courseid = ($course->id != SITEID);
+        if (!$DB->get_record('role_assignments', array('userid'=>$id))
+            && !$has_courseid && $CFG->profilesforenrolledusersonly) {
+            echo get_string('profilenotshown', 'moodle').'<hr />';
+        } else {
+            echo format_text($user->description, FORMAT_MOODLE)."<hr />";
+        }
     }
 
     // Print all the little details in a list