<commit_before><?php

class ParametersForm extends CFormModel {
	public $password;
	public $password_copy;
	public $session_lifetime_in_min;
	public $access_log_lifetime_in_s;
	public $use_whitelist = true;

	public function __construct() {
		parent::__construct();

		$this->session_lifetime_in_min =
			Parameters::getModel()->session_lifetime_in_min;
		$this->access_log_lifetime_in_s =
			Parameters::getModel()->access_log_lifetime_in_s;
		$this->use_whitelist = Parameters::getModel()->use_whitelist;
	}

	public function rules() {
		return array(
			array('password', '<PASSWORD>'),
			array(
				'password_copy',
				'compare',
				'compareAttribute' => 'password',
				'message' =>
					'Поле &laquo;{attribute}&raquo; должно в точности '
						. 'повторять поле &laquo;{compareAttribute}&raquo;.'
			),
			array(
				'session_lifetime_in_min',
				'default',
				'value' => Constants::SESSION_LIFETIME_IN_MIN_DEFAULT
			),
			array(
				'session_lifetime_in_min',
				'numerical',
				'min' => Constants::SESSION_LIFETIME_IN_MIN_MINIMUM,
				'max' => Constants::SESSION_LIFETIME_IN_MIN_MAXIMUM,
				'message' =>
					'Поле &laquo;{attribute}&raquo; должно быть числом.',
				'tooSmall' =>
					'Поле &laquo;{attribute}&raquo; должно быть '
						. 'не меньше {min}.',
				'tooBig' =>
					'Поле &laquo;{attribute}&raquo; должно быть '
						. 'не больше {max}.'
			),
			array(
				'access_log_lifetime_in_s',
				'default',
				'value' => Constants::ACCESS_LOG_LIFETIME_IN_S_DEFAULT
			),
			array(
				'access_log_lifetime_in_s',
				'numerical',
				'min' => Constants::ACCESS_LOG_LIFETIME_IN_S_MINIMUM,
				'max' => Constants::ACCESS_LOG_LIFETIME_IN_S_MAXIMUM,
				'message' =>
					'Поле &laquo;{attribute}&raquo; должно быть числом.',
				'tooSmall' =>
					'Поле &laquo;{attribute}&raquo; должно быть '
						. 'не меньше {min}.',
				'tooBig' =>
					'Поле &laquo;{attribute}&raquo; должно быть '
						. 'не больше {max}.'
			),
			array('use_whitelist', 'boolean'),
			array('use_whitelist', 'default', 'value' => 1)
		);
	}

	public function attributeLabels() {
		return array(
			'password' => '<PASSWORD>',
			'password_copy' => '<PASSWORD> (копия)',
			'session_lifetime_in_min' => 'Время жизни сессии, мин',
			'access_log_lifetime_in_s' => 'Время жизни лога доступа, с',
			'use_whitelist' => 'Использовать белый список'
		);
	}

	public function save() {
		$model = Parameters::getModel();
		if (!empty($this->password)) {
			$model->password_hash = CPasswordHelper::hashPassword(
				$this->password
			);
		}
		$model->session_lifetime_in_min = $this->session_lifetime_in_min;
		$model->access_log_lifetime_in_s = $this->access_log_lifetime_in_s;
		$model->use_whitelist = $this->use_whitelist;
		$model->save();
	}
}<commit_msg>Issue #258: fix the ParametersForm class<commit_after><?php

class ParametersForm extends CFormModel {
	public $password;
	public $password_copy;
	public $session_lifetime_in_min;
	public $access_log_lifetime_in_s;
	public $use_whitelist = true;
	public $use_2fa = true;

	public function __construct() {
		parent::__construct();

		$this->session_lifetime_in_min =
			Parameters::getModel()->session_lifetime_in_min;
		$this->access_log_lifetime_in_s =
			Parameters::getModel()->access_log_lifetime_in_s;
		$this->use_whitelist = Parameters::getModel()->use_whitelist;
		$this->use_2fa = Parameters::getModel()->use_2fa;
	}

	public function rules() {
		return array(
			array('password', '<PASSWORD>'),
			array(
				'password_copy',
				'compare',
				'compareAttribute' => 'password',
				'message' =>
					'Поле &laquo;{attribute}&raquo; должно в точности '
						. 'повторять поле &laquo;{compareAttribute}&raquo;.'
			),
			array(
				'session_lifetime_in_min',
				'default',
				'value' => Constants::SESSION_LIFETIME_IN_MIN_DEFAULT
			),
			array(
				'session_lifetime_in_min',
				'numerical',
				'min' => Constants::SESSION_LIFETIME_IN_MIN_MINIMUM,
				'max' => Constants::SESSION_LIFETIME_IN_MIN_MAXIMUM,
				'message' =>
					'Поле &laquo;{attribute}&raquo; должно быть числом.',
				'tooSmall' =>
					'Поле &laquo;{attribute}&raquo; должно быть '
						. 'не меньше {min}.',
				'tooBig' =>
					'Поле &laquo;{attribute}&raquo; должно быть '
						. 'не больше {max}.'
			),
			array(
				'access_log_lifetime_in_s',
				'default',
				'value' => Constants::ACCESS_LOG_LIFETIME_IN_S_DEFAULT
			),
			array(
				'access_log_lifetime_in_s',
				'numerical',
				'min' => Constants::ACCESS_LOG_LIFETIME_IN_S_MINIMUM,
				'max' => Constants::ACCESS_LOG_LIFETIME_IN_S_MAXIMUM,
				'message' =>
					'Поле &laquo;{attribute}&raquo; должно быть числом.',
				'tooSmall' =>
					'Поле &laquo;{attribute}&raquo; должно быть '
						. 'не меньше {min}.',
				'tooBig' =>
					'Поле &laquo;{attribute}&raquo; должно быть '
						. 'не больше {max}.'
			),
			array('use_whitelist', 'boolean'),
			array('use_whitelist', 'default', 'value' => 1),
			array('use_2fa', 'boolean'),
			array('use_2fa', 'default', 'value' => 1)
		);
	}

	public function attributeLabels() {
		return array(
			'password' => '<PASSWORD>',
			'password_copy' => '<PASSWORD>)',
			'session_lifetime_in_min' => 'Время жизни сессии, мин',
			'access_log_lifetime_in_s' => 'Время жизни лога доступа, с',
			'use_whitelist' => 'Использовать белый список',
			'use_2fa' => 'Использовать 2FA'
		);
	}

	public function save() {
		$model = Parameters::getModel();
		if (!empty($this->password)) {
			$model->password_hash = CPasswordHelper::hashPassword(
				$this->password
			);
		}
		$model->session_lifetime_in_min = $this->session_lifetime_in_min;
		$model->access_log_lifetime_in_s = $this->access_log_lifetime_in_s;
		$model->use_whitelist = $this->use_whitelist;
		$model->use_2fa = $this->use_2fa;
		$model->save();
	}
}
{'fraction_non_alphanumeric': 0.15634218289085547, 'fraction_numerical': 0.0026028110359187923, 'mean_word_length': 4.230490018148821, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 87, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1768090', 'n_tokens_mistral': 2619, 'n_tokens_neox': 2255, 'n_words': 346}