瀏覽代碼

Locking settings field access_url_locked (settings that can be only changed in the main URL ) see #4201

Julio Montoya 13 年之前
父節點
當前提交
dde0953756

+ 8 - 5
main/admin/settings.lib.php

@@ -1059,12 +1059,15 @@ function generate_settings_form($settings, $settings_by_access_list) {
         $i++;
 
         if ( $_configuration['multiple_access_urls']) {
-            if (api_is_global_platform_admin()) {
-                if ($row['access_url_changeable'] == '1') {
-                    $form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "0"  data_to_send = "'.$row['id'].'" href="javascript:void(0);">'.Display::return_icon('shared_setting.png', get_lang('ChangeSharedSetting')).'</a></div>');
-                } else {
-                    $form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "1" data_to_send = "'.$row['id'].'" href="javascript:void(0);">'.Display::return_icon('shared_setting_na.png', get_lang('ChangeSharedSetting')).'</a></div>');
+            if (api_is_global_platform_admin()) {                
+                if ($row['access_url_locked'] == 0) {
+                    if ($row['access_url_changeable'] == '1') {
+                        $form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "0"  data_to_send = "'.$row['id'].'" href="javascript:void(0);">'.Display::return_icon('shared_setting.png', get_lang('ChangeSharedSetting')).'</a></div>');
+                    } else {
+                        $form->addElement('html', '<div style="float: right;"><a class="share_this_setting" data_status = "1" data_to_send = "'.$row['id'].'" href="javascript:void(0);">'.Display::return_icon('shared_setting_na.png', get_lang('ChangeSharedSetting')).'</a></div>');
+                    }
                 }
+                
             }
         }
 

+ 1 - 0
main/admin/settings.php

@@ -107,6 +107,7 @@ if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', '
                     $row['subkey'] = 0;
                 if (empty($row['category']))
                     $row['category'] = 0;
+                
                 // One more validation if is changeable.
                 if ($row['access_url_changeable'] == 1)
                     $settings_by_access_list[ $row['variable'] ] [ $row['subkey'] ] [ $row['category'] ]  = $row;

+ 1 - 1
main/inc/lib/add_course.lib.inc.php

@@ -283,7 +283,7 @@ function get_course_tables() {
 /**
  * Creates all the necessary tables for a new course 
  */
-function update_Db_course($course_db_name = null) {
+function update_db_course($course_db_name = null) {
     global $_configuration;
     
     $charset_clause = ' DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci';

+ 1 - 2
main/inc/lib/main_api.lib.php

@@ -4223,8 +4223,7 @@ function & api_get_settings($cat = null, $ordering = 'list', $access_url = 1, $u
         $where_condition = " AND access_url_changeable= '1' ";
     }    
     if (empty($access_url) or $access_url == -1) { $access_url = 1; }
-    $sql = "SELECT id, variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url, access_url_changeable " .
-            " FROM $t_cs WHERE access_url = $access_url  $where_condition ";
+    $sql = "SELECT * FROM $t_cs WHERE access_url = $access_url  $where_condition ";
     
     if (!empty($cat)) {
         $cat = Database::escape_string($cat);

+ 1 - 0
main/install/db_main.sql

@@ -560,6 +560,7 @@ CREATE TABLE IF NOT EXISTS settings_current (
   subkeytext varchar(255) default NULL,
   access_url int unsigned not null default 1,
   access_url_changeable int unsigned not null default 0,
+  access_url_locked int not null default 0,
   PRIMARY KEY id (id),
   INDEX (access_url)
 );

+ 47 - 40
main/install/install.lib.php

@@ -1561,8 +1561,7 @@ function display_database_parameter($install_type, $parameter_name, $form_field_
         $maxlength = $form_field_name == 'dbPrefixForm' ? '15' : MAX_FORM_FIELD_LENGTH;
         if ($install_type == INSTALL_TYPE_UPDATE) {
             echo '<input type="hidden" name="'.$form_field_name.'" id="'.$form_field_name.'" value="'.api_htmlentities($parameter_value).'" />';
-            echo '<td>'.api_htmlentities($parameter_value)."</td>";
-            //echo "<td>$extra_notice</td>\n";
+            echo '<td>'.api_htmlentities($parameter_value)."</td>";            
         } else {
             echo '<td><input type="'.$inputtype.'" size="'.DATABASE_FORM_FIELD_DISPLAY_LENGTH.'" maxlength="'.$maxlength.'" name="'.$form_field_name.'" id="'.$form_field_name.'" value="'.api_htmlentities($parameter_value).'" />'."</td>";
             echo "<td>$extra_notice</td>";
@@ -1685,26 +1684,6 @@ function display_database_settings_form($installType, $dbHostForm, $dbUsernameFo
     	}    
     	display_database_parameter($installType, get_lang('UserDB'), 'dbUserForm', $dbUserForm, '&nbsp;', null, 'id="optional_param4" '.$style);
     }
-    
-    //Database Prefix
-    //display_database_parameter($installType, get_lang('DbPrefixForm'), 'dbPrefixForm', $dbPrefixForm, '', null, 'id="optional_param5" '.$style); //get_lang('DbPrefixCom')
-    
-    /*  Tracking is always available see #2066
-     *
-    <tr id="optional_param5" style="display:none;">
-      <td><?php echo get_lang('EnableTracking'); ?> </td>
-
-      <?php if ($installType == 'update'): ?>
-      <td><input type="hidden" name="enableTrackingForm" value="<?php echo $enableTrackingForm; ?>" /><?php echo $enableTrackingForm ? get_lang('Yes') : get_lang('No'); ?></td>
-      <?php else: ?>
-      <td>
-        <input class="checkbox" type="radio" name="enableTrackingForm" value="1" id="enableTracking1" <?php echo $enableTrackingForm ? 'checked="checked" ' : ''; ?>/> <label for="enableTracking1"><?php echo get_lang('Yes'); ?></label>
-        <input class="checkbox" type="radio" name="enableTrackingForm" value="0" id="enableTracking0" <?php echo $enableTrackingForm ? '' : 'checked="checked" '; ?>/> <label for="enableTracking0"><?php echo get_lang('No'); ?></label>
-      </td>
-      <?php endif; ?>
-
-      <td>&nbsp;</td>
-    </tr>   */
     ?>
     <tr>
         <td>
@@ -1883,23 +1862,6 @@ function display_configuration_settings_form($installType, $urlForm, $languageFo
     //Parameter 11: institute (short) name
     display_configuration_parameter($installType, get_lang('InstituteURL'), 'institutionUrlForm', $institutionUrlForm);
 
-    /*
-     //old method
-          <tr>
-      <td><?php echo get_lang('EncryptUserPass'); ?> :</td>
-
-      <?php if($installType == 'update'): ?>
-      <td><input type="hidden" name="encryptPassForm" value="<?php echo $encryptPassForm; ?>" /><?php echo $encryptPassForm? get_lang('Yes') : get_lang('No'); ?></td>
-      <?php else: ?>
-      <td>
-        <input class="checkbox" type="radio" name="encryptPassForm" value="1" id="encryptPass1" <?php echo $encryptPassForm?'checked="checked" ':''; ?>/> <label for="encryptPass1"><?php echo get_lang('Yes'); ?></label>
-        <input class="checkbox" type="radio" name="encryptPassForm" value="0" id="encryptPass0" <?php echo $encryptPassForm?'':'checked="checked" '; ?>/> <label for="encryptPass0"><?php echo get_lang('No'); ?></label>
-      </td>
-      <?php endif; ?>
-    </tr>
-
-    */
-
     ?>
     <tr>
       <td><?php echo get_lang("EncryptMethodUserPass"); ?> :</td>
@@ -2008,7 +1970,6 @@ function display_after_install_message($installType, $nbr_courses) {
  * @return  array|string countries list
  */
 function get_countries_list_from_array($combo = false) {
-
     $a_countries = array(
         "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan",
         "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
@@ -2049,3 +2010,49 @@ function get_countries_list_from_array($combo = false) {
 
     return $a_countries;
 }
+
+/**
+ * Lockis settings that can't be changed in other portals 
+ */
+function locking_settings() {
+    $access_url_locked_settings = array(
+        'server_type', 
+        'use_document_title', 
+        'permanently_remove_deleted_files',
+        'account_valid_duration',
+        'service_visio',
+        'service_ppt2lp',
+        'wcag_anysurfer_public_pages',
+        'upload_extensions_list_type',
+        'upload_extensions_blacklist',
+        'upload_extensions_whitelist',   
+        'upload_extensions_skip',    
+        'upload_extensions_replace_by',
+        'hide_dltt_markup',
+        'split_users_upload_directory',
+        'permissions_for_new_directories',
+        'permissions_for_new_files',
+        'platform_charset',
+        'service_visio',
+        'ldap_description',    
+        'cas_activate',
+        'cas_server',
+        'cas_server_uri',
+        'cas_port',
+        'cas_protocol',
+        'cas_add_user_activate',
+        'update_user_info_cas_with_ldap',    
+        'languagePriority1',
+        'languagePriority2',
+        'languagePriority3',
+        'languagePriority4',
+        'login_is_email',
+        'chamilo_database_version'    
+    );
+    $table = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
+    foreach ($access_url_locked_settings as $setting) {
+        $sql = "UPDATE $table SET access_url_locked = 1 WHERE variable  = '$setting'";
+        Database::query($sql);
+    }
+
+}

+ 3 - 1
main/install/install_db.inc.php

@@ -117,7 +117,7 @@ load_main_database($installation_settings);
 //Adds the c_XXX courses tables see #3910
 require_once api_get_path(LIBRARY_PATH).'add_course.lib.inc.php'; 
 
-update_Db_course();
+update_db_course();
 
 load_database_script('db_stats.sql');
 
@@ -125,3 +125,5 @@ $track_countries_table = "track_c_countries";
 fill_track_countries_table($track_countries_table);
 
 load_database_script('db_user.sql');
+
+locking_settings();