MDL-21146, default license will be locked to prevent from disable, move site default...
authorDongsheng Cai <unoter@gmail.com>
Fri, 9 Apr 2010 19:40:23 +0000 (19:40 +0000)
committerDongsheng Cai <unoter@gmail.com>
Fri, 9 Apr 2010 19:40:23 +0000 (19:40 +0000)
admin/settings/frontpage.php
admin/settings/plugins.php
lib/adminlib.php
lib/licenselib.php

index ed980d6..24a5376 100644 (file)
@@ -33,13 +33,6 @@ if (!during_initial_install()) { //do not use during installation
             $options[$i] = $i;
         }
         $temp->add(new admin_setting_configselect('maxcategorydepth', get_string('configsitemaxcategorydepth','admin'), get_string('configsitemaxcategorydepthhelp','admin'), 0, $options));
-        require_once($CFG->libdir . '/licenselib.php');
-        $licenses = array();
-        $array = explode(',', $CFG->licenses);
-        foreach ($array as $value) {
-            $licenses[$value] = get_string($value, 'license');
-        }
-        $temp->add(new admin_setting_configselect('sitedefaultlicense', get_string('configsitedefaultlicense','admin'), get_string('configsitedefaultlicensehelp','admin'), 'allrightsreserved', $licenses));
 
         $temp->add(new admin_setting_sitesetcheckbox('numsections', get_string('sitesection'), get_string('sitesectionhelp','admin'), 1));
         $temp->add(new admin_setting_sitesetselect('newsitems', get_string('newsitemsnumber'), '', 3,
index 4d2c950..3c97d2e 100644 (file)
@@ -89,6 +89,17 @@ if ($hassiteconfig) {
 /// License types
     $ADMIN->add('modules', new admin_category('licensesettings', get_string('license')));
     $temp = new admin_settingpage('managelicenses', get_string('license'));
+
+    require_once($CFG->libdir . '/licenselib.php');
+    $licenses = array();
+    $array = explode(',', $CFG->licenses);
+    foreach ($array as $value) {
+        $licenses[$value] = get_string($value, 'license');
+    }
+    $temp->add(new admin_setting_configselect('sitedefaultlicense', get_string('configsitedefaultlicense','admin'), get_string('configsitedefaultlicensehelp','admin'), 'allrightsreserved', $licenses));
+
+    $ADMIN->add('licensesettings', $temp);
+
     $temp->add(new admin_setting_managelicenses());
     $ADMIN->add('licensesettings', $temp);
 
index 0c3d2d9..078b20b 100644 (file)
@@ -5088,6 +5088,12 @@ class admin_setting_managelicenses extends admin_setting {
                 $hideshow = html_writer::link($url.'&action=enable&license='.$value->shortname,
                     html_writer::tag('img', '', array('src'=>$OUTPUT->pix_url('i/show'), 'class'=>'icon', 'alt'=>'enable')));
             }
+
+            if ($value->shortname == $CFG->sitedefaultlicense) {
+                $displayname .= ' '.html_writer::tag('img', '', array('src'=>$OUTPUT->pix_url('i/lock'), 'class'=>'icon', 'alt'=>get_string('default'), 'title'=>get_string('default')));
+                $hideshow = '';
+            }
+
             $enabled = true;
 
             $table->data[] =array($displayname, $hideshow);
index 273da29..52dd42e 100644 (file)
@@ -106,7 +106,11 @@ class license_manager {
      * @return boolean
      */
     static public function disable($license) {
-        global $DB;
+        global $DB, $CFG;
+        // Site default license cannot be disabled!
+        if ($license == $CFG->sitedefaultlicense) {
+            print_error('error');
+        }
         if ($license = self::get_license_by_shortname($license)) {
             $license->enabled = 0;
             $DB->update_record('license', $license);