MDL-55980 Scheduled tasks: Run individual scheduled tasks from web
[moodle.git] / admin / settings / security.php
1 <?php
3 if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
5     // "ip blocker" settingpage
6     $temp = new admin_settingpage('ipblocker', new lang_string('ipblocker', 'admin'));
7     $temp->add(new admin_setting_configcheckbox('allowbeforeblock', new lang_string('allowbeforeblock', 'admin'), new lang_string('allowbeforeblockdesc', 'admin'), 0));
8     $temp->add(new admin_setting_configiplist('allowedip', new lang_string('allowediplist', 'admin'),
9                                                 new lang_string('ipblockersyntax', 'admin'), ''));
10     $temp->add(new admin_setting_configiplist('blockedip', new lang_string('blockediplist', 'admin'),
11                                                 new lang_string('ipblockersyntax', 'admin'), ''));
12     $ADMIN->add('security', $temp);
14     // "sitepolicies" settingpage
15     $temp = new admin_settingpage('sitepolicies', new lang_string('sitepolicies', 'admin'));
16     $temp->add(new admin_setting_configcheckbox('protectusernames', new lang_string('protectusernames', 'admin'), new lang_string('configprotectusernames', 'admin'), 1));
17     $temp->add(new admin_setting_configcheckbox('forcelogin', new lang_string('forcelogin', 'admin'), new lang_string('configforcelogin', 'admin'), 0));
18     $temp->add(new admin_setting_configcheckbox('forceloginforprofiles', new lang_string('forceloginforprofiles', 'admin'), new lang_string('configforceloginforprofiles', 'admin'), 1));
19     $temp->add(new admin_setting_configcheckbox('forceloginforprofileimage', new lang_string('forceloginforprofileimage', 'admin'), new lang_string('forceloginforprofileimage_help', 'admin'), 0));
20     $temp->add(new admin_setting_configcheckbox('opentogoogle', new lang_string('opentogoogle', 'admin'), new lang_string('configopentogoogle', 'admin'), 0));
21     $temp->add(new admin_setting_pickroles('profileroles',
22         new lang_string('profileroles','admin'),
23         new lang_string('configprofileroles', 'admin'),
24         array('student', 'teacher', 'editingteacher')));
26     $maxbytes = 0;
27     if (!empty($CFG->maxbytes)) {
28         $maxbytes = $CFG->maxbytes;
29     }
30     $max_upload_choices = get_max_upload_sizes(0, 0, 0, $maxbytes);
31     // maxbytes set to 0 will allow the maximum server limit for uploads
32     $temp->add(new admin_setting_configselect('maxbytes', new lang_string('maxbytes', 'admin'), new lang_string('configmaxbytes', 'admin'), 0, $max_upload_choices));
33     // 100MB
34     $defaultuserquota = 104857600;
35     $params = new stdClass();
36     $params->bytes = $defaultuserquota;
37     $params->displaysize = display_size($defaultuserquota);
38     $temp->add(new admin_setting_configtext('userquota', new lang_string('userquota', 'admin'),
39                 new lang_string('configuserquota', 'admin', $params), $defaultuserquota, PARAM_INT, 30));
41     $temp->add(new admin_setting_configcheckbox('allowobjectembed', new lang_string('allowobjectembed', 'admin'), new lang_string('configallowobjectembed', 'admin'), 0));
42     $temp->add(new admin_setting_configcheckbox('enabletrusttext', new lang_string('enabletrusttext', 'admin'), new lang_string('configenabletrusttext', 'admin'), 0));
43     $temp->add(new admin_setting_configselect('maxeditingtime', new lang_string('maxeditingtime','admin'), new lang_string('configmaxeditingtime','admin'), 1800,
44                  array(60 => new lang_string('numminutes', '', 1),
45                        300 => new lang_string('numminutes', '', 5),
46                        900 => new lang_string('numminutes', '', 15),
47                        1800 => new lang_string('numminutes', '', 30),
48                        2700 => new lang_string('numminutes', '', 45),
49                        3600 => new lang_string('numminutes', '', 60))));
51     $temp->add(new admin_setting_configcheckbox('extendedusernamechars', new lang_string('extendedusernamechars', 'admin'), new lang_string('configextendedusernamechars', 'admin'), 0));
52     $temp->add(new admin_setting_configtext('sitepolicy', new lang_string('sitepolicy', 'admin'), new lang_string('sitepolicy_help', 'admin'), '', PARAM_RAW));
53     $temp->add(new admin_setting_configtext('sitepolicyguest', new lang_string('sitepolicyguest', 'admin'), new lang_string('sitepolicyguest_help', 'admin'), (isset($CFG->sitepolicy) ? $CFG->sitepolicy : ''), PARAM_RAW));
54     $temp->add(new admin_setting_configcheckbox('extendedusernamechars', new lang_string('extendedusernamechars', 'admin'), new lang_string('configextendedusernamechars', 'admin'), 0));
55     $temp->add(new admin_setting_configcheckbox('keeptagnamecase', new lang_string('keeptagnamecase','admin'),new lang_string('configkeeptagnamecase', 'admin'),'1'));
57     $temp->add(new admin_setting_configcheckbox('profilesforenrolledusersonly', new lang_string('profilesforenrolledusersonly','admin'),new lang_string('configprofilesforenrolledusersonly', 'admin'),'1'));
59     $temp->add(new admin_setting_configcheckbox('cronclionly', new lang_string('cronclionly', 'admin'), new lang_string
60             ('configcronclionly', 'admin'), 1));
61     $temp->add(new admin_setting_configpasswordunmask('cronremotepassword', new lang_string('cronremotepassword', 'admin'), new lang_string('configcronremotepassword', 'admin'), ''));
62     $temp->add(new admin_setting_configcheckbox('tool_task/enablerunnow', new lang_string('enablerunnow', 'tool_task'),
63             new lang_string('enablerunnow_desc', 'tool_task'), 1));
65     $options = array(0=>get_string('no'), 3=>3, 5=>5, 7=>7, 10=>10, 20=>20, 30=>30, 50=>50, 100=>100);
66     $temp->add(new admin_setting_configselect('lockoutthreshold', new lang_string('lockoutthreshold', 'admin'), new lang_string('lockoutthreshold_desc', 'admin'), 0, $options));
67     $temp->add(new admin_setting_configduration('lockoutwindow', new lang_string('lockoutwindow', 'admin'), new lang_string('lockoutwindow_desc', 'admin'), 60*30));
68     $temp->add(new admin_setting_configduration('lockoutduration', new lang_string('lockoutduration', 'admin'), new lang_string('lockoutduration_desc', 'admin'), 60*30));
70     $temp->add(new admin_setting_configcheckbox('passwordpolicy', new lang_string('passwordpolicy', 'admin'), new lang_string('configpasswordpolicy', 'admin'), 1));
71     $temp->add(new admin_setting_configtext('minpasswordlength', new lang_string('minpasswordlength', 'admin'), new lang_string('configminpasswordlength', 'admin'), 8, PARAM_INT));
72     $temp->add(new admin_setting_configtext('minpassworddigits', new lang_string('minpassworddigits', 'admin'), new lang_string('configminpassworddigits', 'admin'), 1, PARAM_INT));
73     $temp->add(new admin_setting_configtext('minpasswordlower', new lang_string('minpasswordlower', 'admin'), new lang_string('configminpasswordlower', 'admin'), 1, PARAM_INT));
74     $temp->add(new admin_setting_configtext('minpasswordupper', new lang_string('minpasswordupper', 'admin'), new lang_string('configminpasswordupper', 'admin'), 1, PARAM_INT));
75     $temp->add(new admin_setting_configtext('minpasswordnonalphanum', new lang_string('minpasswordnonalphanum', 'admin'), new lang_string('configminpasswordnonalphanum', 'admin'), 1, PARAM_INT));
76     $temp->add(new admin_setting_configtext('maxconsecutiveidentchars', new lang_string('maxconsecutiveidentchars', 'admin'), new lang_string('configmaxconsecutiveidentchars', 'admin'), 0, PARAM_INT));
78     $temp->add(new admin_setting_configtext('passwordreuselimit',
79         new lang_string('passwordreuselimit', 'admin'),
80         new lang_string('passwordreuselimit_desc', 'admin'), 0, PARAM_INT));
82     $pwresetoptions = array(
83         300 => new lang_string('numminutes', '', 5),
84         900 => new lang_string('numminutes', '', 15),
85         1800 => new lang_string('numminutes', '', 30),
86         2700 => new lang_string('numminutes', '', 45),
87         3600 => new lang_string('numminutes', '', 60),
88         7200 => new lang_string('numminutes', '', 120),
89         14400 => new lang_string('numminutes', '', 240)
90     );
91     $adminsetting = new admin_setting_configselect(
92             'pwresettime',
93             new lang_string('passwordresettime','admin'),
94             new lang_string('configpasswordresettime','admin'),
95             1800,
96             $pwresetoptions);
97     $temp->add($adminsetting);
98     $temp->add(new admin_setting_configcheckbox('passwordchangelogout',
99         new lang_string('passwordchangelogout', 'admin'),
100         new lang_string('passwordchangelogout_desc', 'admin'), 0));
102     $temp->add(new admin_setting_configcheckbox('passwordchangetokendeletion',
103         new lang_string('passwordchangetokendeletion', 'admin'),
104         new lang_string('passwordchangetokendeletion_desc', 'admin'), 0));
106     $temp->add(new admin_setting_configcheckbox('groupenrolmentkeypolicy', new lang_string('groupenrolmentkeypolicy', 'admin'), new lang_string('groupenrolmentkeypolicy_desc', 'admin'), 1));
107     $temp->add(new admin_setting_configcheckbox('disableuserimages', new lang_string('disableuserimages', 'admin'), new lang_string('configdisableuserimages', 'admin'), 0));
108     $temp->add(new admin_setting_configcheckbox('emailchangeconfirmation', new lang_string('emailchangeconfirmation', 'admin'), new lang_string('configemailchangeconfirmation', 'admin'), 1));
109     $temp->add(new admin_setting_configselect('rememberusername', new lang_string('rememberusername','admin'), new lang_string('rememberusername_desc','admin'), 2, array(1=>new lang_string('yes'), 0=>new lang_string('no'), 2=>new lang_string('optional'))));
110     $temp->add(new admin_setting_configcheckbox('strictformsrequired', new lang_string('strictformsrequired', 'admin'), new lang_string('configstrictformsrequired', 'admin'), 0));
111     $ADMIN->add('security', $temp);
116     // "httpsecurity" settingpage
117     $temp = new admin_settingpage('httpsecurity', new lang_string('httpsecurity', 'admin'));
118     $temp->add(new admin_setting_configcheckbox('loginhttps', new lang_string('loginhttps', 'admin'), new lang_string('configloginhttps', 'admin'), 0));
119     $temp->add(new admin_setting_configcheckbox('cookiesecure', new lang_string('cookiesecure', 'admin'), new lang_string('configcookiesecure', 'admin'), 1));
120     $temp->add(new admin_setting_configcheckbox('cookiehttponly', new lang_string('cookiehttponly', 'admin'), new lang_string('configcookiehttponly', 'admin'), 0));
121     $temp->add(new admin_setting_configcheckbox('allowframembedding', new lang_string('allowframembedding', 'admin'), new lang_string('allowframembedding_help', 'admin'), 0));
123     // Settings elements used by the \core\files\curl_security_helper class.
124     $temp->add(new admin_setting_configmixedhostiplist('curlsecurityblockedhosts',
125                new lang_string('curlsecurityblockedhosts', 'admin'),
126                new lang_string('curlsecurityblockedhostssyntax', 'admin'), ""));
127     $temp->add(new admin_setting_configportlist('curlsecurityallowedport',
128                new lang_string('curlsecurityallowedport', 'admin'),
129                new lang_string('curlsecurityallowedportsyntax', 'admin'), ""));
130     $ADMIN->add('security', $temp);
132     // "notifications" settingpage
133     $temp = new admin_settingpage('notifications', new lang_string('notifications', 'admin'));
134     $temp->add(new admin_setting_configcheckbox('displayloginfailures', new lang_string('displayloginfailures', 'admin'),
135             new lang_string('configdisplayloginfailures', 'admin'), 0));
136     $temp->add(new admin_setting_users_with_capability('notifyloginfailures', new lang_string('notifyloginfailures', 'admin'), new lang_string('confignotifyloginfailures', 'admin'), array(), 'moodle/site:config'));
137     $options = array();
138     for ($i = 1; $i <= 100; $i++) {
139         $options[$i] = $i;
140     }
141     $temp->add(new admin_setting_configselect('notifyloginthreshold', new lang_string('notifyloginthreshold', 'admin'), new lang_string('confignotifyloginthreshold', 'admin'), '10', $options));
142     $ADMIN->add('security', $temp);
143 } // end of speedup