From e4b1208377ace2d49f07fac2332f70037a99354d Mon Sep 17 00:00:00 2001 From: Eloy Lafuente Date: Mon, 12 Dec 2011 12:33:54 +0800 Subject: [PATCH] MDL-29844 Administration: Added new config for users to login for viewing profile image --- admin/settings/security.php | 1 + lang/en/admin.php | 2 ++ lib/filelib.php | 4 +++- lib/outputcomponents.php | 4 +++- version.php | 2 +- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/admin/settings/security.php b/admin/settings/security.php index 382f3f26ea1..bde7263d6b6 100644 --- a/admin/settings/security.php +++ b/admin/settings/security.php @@ -16,6 +16,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)); $temp->add(new admin_setting_pickroles('profileroles', get_string('profileroles','admin'), diff --git a/lang/en/admin.php b/lang/en/admin.php index f648a3dbdd8..749d3192491 100644 --- a/lang/en/admin.php +++ b/lang/en/admin.php @@ -516,6 +516,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['frontpage'] = 'Front page'; diff --git a/lib/filelib.php b/lib/filelib.php index af72cf70a12..e3b4a22e539 100644 --- a/lib/filelib.php +++ b/lib/filelib.php @@ -3404,8 +3404,10 @@ function file_pluginfile($relativepath, $forcedownload) { $themename = array_shift($args); $filename = array_shift($args); } - 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 = true; } diff --git a/lib/outputcomponents.php b/lib/outputcomponents.php index 16f1fe27f9a..96996477cdd 100644 --- a/lib/outputcomponents.php +++ b/lib/outputcomponents.php @@ -276,8 +276,10 @@ class user_picture implements renderable { $renderer = $page->get_renderer('core'); } - 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 return $renderer->pix_url('u/f1'); } diff --git a/version.php b/version.php index 3f0ade29ef1..d713018312a 100644 --- a/version.php +++ b/version.php @@ -30,7 +30,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2011120500.04; // 20111205 = branching date YYYYMMDD - do not modify! +$version = 2011120500.05; // 20111205 = branching date YYYYMMDD - do not modify! // RR = release increments - 00 in DEV branches // .XX = incremental changes