Completed
Push — master ( 6bbacb...cd0bb4 )
by Nazar
04:59
created

admin_security_settings_common_multiline()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 7
rs 9.4286
cc 2
eloc 5
nc 2
nop 1
1
<?php
2
/**
3
 * @package    CleverStyle CMS
4
 * @subpackage System module
5
 * @category   modules
6
 * @author     Nazar Mokrynskyi <[email protected]>
7
 * @copyright  Copyright (c) 2015, Nazar Mokrynskyi
8
 * @license    MIT License, see license.txt
9
 */
10
namespace cs\modules\System\api\Controller\admin;
11
use
12
	cs\Config,
13
	cs\ExitException,
14
	cs\Page;
15
trait security {
16
	/**
17
	 * Get security settings
18
	 */
19
	static function admin_security_get_settings () {
20
		$Config = Config::instance();
21
		Page::instance()->json(
22
			[
23
				'key_expire'         => $Config->core['key_expire'],
24
				'ip_black_list'      => $Config->core['ip_black_list'],
25
				'ip_admin_list_only' => $Config->core['ip_admin_list_only'],
26
				'ip_admin_list'      => $Config->core['ip_admin_list'],
27
				'current_ip'         => $_SERVER->ip,
28
				'simple_admin_mode'  => $Config->core['simple_admin_mode'],
29
				'applied'            => $Config->cancel_available()
30
			]
31
		);
32
	}
33
	/**
34
	 * Apply security settings
35
	 *
36
	 * @throws ExitException
37
	 */
38
	static function admin_security_apply_settings () {
39
		static::admin_security_settings_common();
40
		if (!Config::instance()->apply()) {
41
			throw new ExitException(500);
42
		}
43
	}
44
	/**
45
	 * @throws ExitException
46
	 */
47
	protected static function admin_security_settings_common () {
48
		if (!isset(
49
			$_POST['key_expire'],
50
			$_POST['ip_black_list'],
51
			$_POST['ip_admin_list_only'],
52
			$_POST['ip_admin_list']
53
		)
54
		) {
55
			throw new ExitException(400);
56
		}
57
		$Config                             = Config::instance();
58
		$Config->core['key_expire']         = (int)$_POST['key_expire'];
59
		$Config->core['ip_black_list']      = static::admin_security_settings_common_multiline($_POST['ip_black_list']);
60
		$Config->core['ip_admin_list_only'] = (int)(bool)$_POST['ip_admin_list_only'];
61
		$Config->core['ip_admin_list']      = static::admin_security_settings_common_multiline($_POST['ip_admin_list']);
62
	}
63
	/**
64
	 * @param string $value
65
	 *
66
	 * @return string[]
67
	 */
68
	protected static function admin_security_settings_common_multiline ($value) {
69
		$value = _trim(explode("\n", $value));
70
		if ($value[0] == '') {
71
			$value = [];
72
		}
73
		return $value;
74
	}
75
	/**
76
	 * Save security settings
77
	 *
78
	 * @throws ExitException
79
	 */
80
	static function admin_security_save_settings () {
81
		static::admin_security_settings_common();
82
		if (!Config::instance()->save()) {
83
			throw new ExitException(500);
84
		}
85
	}
86
	/**
87
	 * Cancel security settings
88
	 *
89
	 * @throws ExitException
90
	 */
91
	static function admin_security_cancel_settings () {
92
		if (!Config::instance()->cancel()) {
93
			throw new ExitException(500);
94
		}
95
	}
96
}
97