Example #1
0
 public function save()
 {
     $this->load->library('form_validation');
     $this->form_validation->set_rules('config[language]', 'lang:admin_settings_form_field_language', 'required');
     if (is_mod_rewrite_enabled()) {
         $this->form_validation->set_rules('config[rewrite_engine_enabled]', 'lang:admin_settings_form_field_rewrite_engine_enabled', 'required');
     }
     $this->form_validation->set_rules('config[url_suffix]', 'lang:admin_settings_form_field_url_suffix', 'callback__url_suffix');
     $this->form_validation->set_message('_url_suffix', $this->lang->line('admin_settings_form_error_message_url_suffix'));
     $this->form_validation->set_rules('config[teacher_login_security_timeout]', 'lang:admin_settings_form_field_teacher_login_security_timeout', 'required|integer|greater_than[0]');
     $this->form_validation->set_rules('config[student_login_security_timeout]', 'lang:admin_settings_form_field_student_login_security_timeout', 'required|integer|greater_than[0]');
     $this->form_validation->set_rules('config[teacher_login_security_allowed_attempts]', 'lang:admin_settings_form_field_teacher_login_security_allowed_attempts', 'required|integer|greater_than[0]');
     $this->form_validation->set_rules('config[student_login_security_allowed_attempts]', 'lang:admin_settings_form_field_student_login_security_allowed_attempts', 'required|integer|greater_than[0]');
     $this->form_validation->set_rules('config[maximum_solition_filesize]', 'lang:admin_settings_form_field_maximum_solition_filesize', 'required|integer|greater_than[0]');
     $this->form_validation->set_rules('config[readable_file_extensions]', 'lang:admin_settings_form_field_readable_file_extensions', 'required|min_length[0]|regex_match[/^[a-z]+[0-9]*(\\,[a-z]+[0-9]*)*$/]');
     $this->form_validation->set_rules('config[email][protocol]', 'lang:admin_settings_form_field_email_protocol', 'required');
     $this->form_validation->set_rules('config[email][priority]', 'lang:admin_settings_form_field_email_priority', 'required|integer|greater_than[0]|lower_than[6]');
     $this->form_validation->set_rules('config[email][smtp_port]', 'lang:admin_settings_form_field_email_smtp_port', 'integer|greater_than[0]');
     $this->form_validation->set_rules('config[email][smtp_timeout]', 'lang:admin_settings_form_field_email_smtp_timeout', 'integer|greater_than[0]');
     $this->form_validation->set_rules('moss[moss_user_id]', 'lang:admin_settings_form_field_moss_user_id', 'required|integer|greater_than[0]');
     $this->form_validation->set_rules('config[test_aging_ticks_to_priority_increase]', 'lang:admin_settings_form_field_test_aging_ticks_to_priority_increase', 'required|integer|greater_than_equal[5]');
     $this->form_validation->set_rules('config[test_aging_max_tests_to_raise_priority]', 'lang:admin_settings_form_field_test_aging_max_tests_to_raise_priority', 'required|integer|greater_than_equal[5]');
     $this->form_validation->set_rules('config[test_maximum_enqueued_pe_student]', 'lang:admin_settings_form_field_test_maximum_enqueued_pe_student', 'required|integer|greater_than_equal[3]');
     $this->form_validation->set_rules('config[test_queue_done_error_lifetime]', 'lang:admin_settings_form_field_test_queue_done_error_lifetime', 'required|integer|greater_than_equal[60]');
     if ($this->form_validation->run()) {
         $config = $this->protect_config_array($this->input->post('config'));
         $moss = $this->protect_moss_array($this->input->post('moss'));
         if (is_mod_rewrite_enabled()) {
             $config['rewrite_engine_enabled'] = $this->bool_val($config['rewrite_engine_enabled']);
         } else {
             $config['rewrite_engine_enabled'] = FALSE;
         }
         $config['teacher_login_security_timeout'] = intval($config['teacher_login_security_timeout']);
         $config['student_login_security_timeout'] = intval($config['student_login_security_timeout']);
         $config['teacher_login_security_allowed_attempts'] = intval($config['teacher_login_security_allowed_attempts']);
         $config['student_login_security_allowed_attempts'] = intval($config['student_login_security_allowed_attempts']);
         $config['maximum_solition_filesize'] = intval($config['maximum_solition_filesize']);
         $config['student_registration']['enabled'] = $this->bool_val($config['student_registration']['enabled']);
         $config['student_mail_change'] = $this->bool_val($config['student_mail_change']);
         $config['email']['smtp_port'] = intval($config['email']['smtp_port']);
         $config['email']['smtp_timeout'] = intval($config['email']['smtp_timeout']);
         $config['email']['priority'] = intval($config['email']['priority']);
         $config['email_multirecipient_batch_mode'] = $this->bool_val($config['email_multirecipient_batch_mode']);
         $config['test_aging_ticks_to_priority_increase'] = intval($config['test_aging_ticks_to_priority_increase']);
         $config['test_aging_max_tests_to_raise_priority'] = intval($config['test_aging_max_tests_to_raise_priority']);
         $config['test_maximum_enqueued_pe_student'] = intval($config['test_maximum_enqueued_pe_student']);
         if (!in_array($config['test_sandbox'], array('implicit', 'docker'))) {
             $config['test_sandbox'] = 'implicit';
         }
         $this->configurator->set_config_array('config', $config);
         $this->configurator->set_config_array('moss', $moss);
         sleep(3);
         redirect(create_internal_url('admin_settings/index'));
     } else {
         $this->index();
     }
 }
/**
 * Creates internal url from relative url.
 * Function respects setting of rewrite engine from application/config/config.php.
 * @param string $relative_url relative url as controller/action/[parameters].
 * @param boolean $force_simple_link if set to TRUE, link will not use rewrite engine and url suffix, even if they are configured.
 * @return string internal url.
 */
function create_internal_url($relative_url, $force_simple_link = FALSE)
{
    $CI =& get_instance();
    if (!$force_simple_link && $CI->config->item('rewrite_engine_enabled') && is_mod_rewrite_enabled()) {
        if (trim(trim($relative_url, '\\/')) == '') {
            return base_url('/');
        }
        return base_url('/' . trim($relative_url, '/')) . $CI->config->item('url_suffix');
    } else {
        return base_url($CI->config->item('index_page') . '/' . trim($relative_url, '/')) . (!$force_simple_link ? $CI->config->item('url_suffix') : '');
    }
}
Example #3
0
 /**
  * This function returns current url with respect to rewrite engien setting.
  * I.E. it clears $config['index_page'] from current url.
  * @return string current url.
  */
 public function clear_current_url()
 {
     $current_url = current_url();
     if ($this->CI->config->item('rewrite_engine_enabled') && is_mod_rewrite_enabled()) {
         $current_url = str_replace(array($this->CI->config->item('index_page') . '/', $this->CI->config->item('index_page')), array('', ''), $current_url);
     }
     return $current_url;
 }