소스 검색

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++;
         $i++;
 
 
         if ( $_configuration['multiple_access_urls']) {
         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;
                     $row['subkey'] = 0;
                 if (empty($row['category']))
                 if (empty($row['category']))
                     $row['category'] = 0;
                     $row['category'] = 0;
+                
                 // One more validation if is changeable.
                 // One more validation if is changeable.
                 if ($row['access_url_changeable'] == 1)
                 if ($row['access_url_changeable'] == 1)
                     $settings_by_access_list[ $row['variable'] ] [ $row['subkey'] ] [ $row['category'] ]  = $row;
                     $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 
  * 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;
     global $_configuration;
     
     
     $charset_clause = ' DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci';
     $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' ";
         $where_condition = " AND access_url_changeable= '1' ";
     }    
     }    
     if (empty($access_url) or $access_url == -1) { $access_url = 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)) {
     if (!empty($cat)) {
         $cat = Database::escape_string($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,
   subkeytext varchar(255) default NULL,
   access_url int unsigned not null default 1,
   access_url int unsigned not null default 1,
   access_url_changeable int unsigned not null default 0,
   access_url_changeable int unsigned not null default 0,
+  access_url_locked int not null default 0,
   PRIMARY KEY id (id),
   PRIMARY KEY id (id),
   INDEX (access_url)
   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;
         $maxlength = $form_field_name == 'dbPrefixForm' ? '15' : MAX_FORM_FIELD_LENGTH;
         if ($install_type == INSTALL_TYPE_UPDATE) {
         if ($install_type == INSTALL_TYPE_UPDATE) {
             echo '<input type="hidden" name="'.$form_field_name.'" id="'.$form_field_name.'" value="'.api_htmlentities($parameter_value).'" />';
             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 {
         } 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><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>";
             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);
     	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>
     <tr>
         <td>
         <td>
@@ -1883,23 +1862,6 @@ function display_configuration_settings_form($installType, $urlForm, $languageFo
     //Parameter 11: institute (short) name
     //Parameter 11: institute (short) name
     display_configuration_parameter($installType, get_lang('InstituteURL'), 'institutionUrlForm', $institutionUrlForm);
     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>
     <tr>
       <td><?php echo get_lang("EncryptMethodUserPass"); ?> :</td>
       <td><?php echo get_lang("EncryptMethodUserPass"); ?> :</td>
@@ -2008,7 +1970,6 @@ function display_after_install_message($installType, $nbr_courses) {
  * @return  array|string countries list
  * @return  array|string countries list
  */
  */
 function get_countries_list_from_array($combo = false) {
 function get_countries_list_from_array($combo = false) {
-
     $a_countries = array(
     $a_countries = array(
         "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan",
         "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",
         "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;
     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
 //Adds the c_XXX courses tables see #3910
 require_once api_get_path(LIBRARY_PATH).'add_course.lib.inc.php'; 
 require_once api_get_path(LIBRARY_PATH).'add_course.lib.inc.php'; 
 
 
-update_Db_course();
+update_db_course();
 
 
 load_database_script('db_stats.sql');
 load_database_script('db_stats.sql');
 
 
@@ -125,3 +125,5 @@ $track_countries_table = "track_c_countries";
 fill_track_countries_table($track_countries_table);
 fill_track_countries_table($track_countries_table);
 
 
 load_database_script('db_user.sql');
 load_database_script('db_user.sql');
+
+locking_settings();