commit 4ed11995247b47033d4cd58eb75bc7101a431ef5
Author: Rajesh Taneja <rajesh@moodle.org>
Date:   Tue Jan 3 13:48:24 2012 +0800

    MDL-29844 Administration: Added new config for users to login for viewing profile image

diff --git a/admin/settings/security.php b/admin/settings/security.php
index 4f2a038..58a233d 100644
--- a/admin/settings/security.php
+++ b/admin/settings/security.php
@@ -8,6 +8,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
     $temp->add(new admin_setting_configcheckbox('protectusernames', get_string('protectusernames', 'admin'), get_string('configprotectusernames', 'admin'), 1));
     $temp->add(new admin_setting_configcheckbox('forcelogin', get_string('forcelogin', 'admin'), get_string('configforcelogin', 'admin'), 0));
     $temp->add(new admin_setting_configcheckbox('forceloginforprofiles', get_string('forceloginforprofiles', 'admin'), get_string('configforceloginforprofiles', 'admin'), 1));
+    $temp->add(new admin_setting_configcheckbox('forceloginforprofileimage', get_string('forceloginforprofileimage', 'admin'), get_string('forceloginforprofileimage_help', 'admin'), 0));
     $temp->add(new admin_setting_configcheckbox('opentogoogle', get_string('opentogoogle', 'admin'), get_string('configopentogoogle', 'admin'), 0));
 
     $max_upload_choices = get_max_upload_sizes();
diff --git a/lang/en_utf8/admin.php b/lang/en_utf8/admin.php
index 915064e..6f88a99 100644
--- a/lang/en_utf8/admin.php
+++ b/lang/en_utf8/admin.php
@@ -396,6 +396,8 @@ $string['filtersettings'] = 'Manage filters';
 $string['filtersettingsgeneral'] = 'General filter settings';
 $string['filteruploadedfiles'] = 'Filter uploaded files';
 $string['forcelogin'] = 'Force users to login';
+$string['forceloginforprofileimage'] = 'Force users to login to view user pictures';
+$string['forceloginforprofileimage_help'] = 'If enabled, users must login in order to view user profile pictures and the default user picture will be used in all notification emails.';
 $string['forceloginforprofiles'] = 'Force users to login for profiles';
 $string['forcetimezone'] = 'Force default timezone';
 $string['framename'] = 'Frame name';
diff --git a/user/pix.php b/user/pix.php
index d37d18b..fa0365c 100644
--- a/user/pix.php
+++ b/user/pix.php
@@ -6,8 +6,10 @@
     require_once('../config.php');
     require_once($CFG->libdir.'/filelib.php');
 
-    if (!empty($CFG->forcelogin) and !isloggedin()) {
+    if ((!empty($CFG->forcelogin) and !isloggedin()) ||
+        (!empty($CFG->forceloginforprofileimage) && (!isloggedin() || isguestuser()))) {
         // protect images if login required and not logged in;
+        // also if login is required for profile images and is not logged in or guest
         // do not use require_login() because it is expensive and not suitable here anyway
         redirect($CFG->pixpath.'/u/f1.png');
     }

