Subversion-Projekte lars-tiefland.ci

Revision

Revision 2253 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
2074 lars 1
<?php
851 lars 2
 
3
/**
4
 *
5
 * @package WebanOS CI
6
 * @author Lars Tiefland <ltiefland@gmail.com>
7
 * @copyright 2016
8
 * @version $Rev: 2255 $
9
 */
10
 
11
class Weban_backend
12
{
2255 lars 13
	public function __construct()
14
	{
15
		$CI = &get_instance();
16
		$csrf_name = $CI->security->get_csrf_token_name();
17
		$csrf_value = $CI->security->get_csrf_hash();
18
		$CI->smarty->assign('csrf_name', $csrf_name);
19
		$CI->smarty->assign('csrf_value', $csrf_value);
20
		if (!isset($_SESSION['username'])) {
21
			if (!isset($_SESSION["redirected"])) {
22
				$_SESSION["redirected"] = true;
23
				header("Location:/backend/Login/");
24
				exit;
25
			}
26
			return;
27
		}
28
		$web_rechte = array();
29
		$user_rechte = array();
30
		$CI->load->model('termine_model', 'termine');
31
		$termine = $CI->termine->get_list();
32
		$CI->smarty->assign('termine', $termine);
33
		$sql = "SELECT
883 lars 34
				*
35
			FROM
36
				webs
37
			WHERE
2251 lars 38
				domain='" . __SHOP__ . "'
883 lars 39
		";
2255 lars 40
		$res = $GLOBALS["db_red"]->query($sql);
41
		$GLOBALS["webs"] = $res->row_array();
42
		$base = $_SERVER["DOCUMENT_ROOT"] . "/backend/css";
43
		$extra = "/" . __SHOP__ . "/";
44
		$file = "jquery-ui.custom.css";
45
		$css_file = $base . $extra . $file;
46
		if (!file_exists($css_file)) {
47
			$extra = "/start/";
48
		}
49
		$css_file = "/backend/css" . $extra . $file;
50
		$CI->smarty->assign("jquery_ui_css", $css_file);
51
		$CI->smarty->assign("webs", $GLOBALS["webs"]);
883 lars 52
 
2255 lars 53
		$sql = "SELECT
851 lars 54
				modules.interner_name AS m_name,
55
				tools.button_name AS t_name,
56
				properties.interner_name AS p_name,
1250 lars 57
				webs_properties.Bezeichnung,
58
				filename
851 lars 59
			FROM
60
				webs,
2255 lars 61
				webs_properties,
62
				properties,
63
				tools,
64
				modules
65
			WHERE
66
				webs.domain='" . __SHOP__ . "'
67
			AND
68
				webs_properties.webs=webs.ID
69
			AND
70
				webs_properties.properties=properties.ID
71
			AND
72
				properties.tools = tools.ID
73
			AND
74
				tools.modules = modules.ID
75
			AND
76
				tools.filename LIKE '/backend/%/'
77
			ORDER BY
78
				properties.Rang
851 lars 79
		";
80
 
2255 lars 81
		$result = $GLOBALS["db_red"]->query($sql);
82
		while ($zeile = $result->unbuffered_row('array')) {
83
			//var_dump($zeile);
84
			//exit;
85
			if (!$zeile["Bezeichnung"]) {
86
				$zeile["Bezeichnung"] = "";
87
			}
88
			$zeile["Bezeichnung"] = explode("|", $zeile["Bezeichnung"]);
851 lars 89
 
2255 lars 90
			if (count($zeile["Bezeichnung"]) == 1) {
91
				$zeile["Bezeichnung"] = $zeile["Bezeichnung"][0];
92
			}
93
			$web_rechte[$zeile["m_name"]][$zeile["t_name"]][$zeile["p_name"]] = $zeile["Bezeichnung"];
94
		}
851 lars 95
 
2255 lars 96
		foreach (array_keys($web_rechte) as $a) {
97
			foreach (array_keys($web_rechte[$a]) as $b) {
98
				foreach (array_keys($web_rechte[$a][$b]) as $c) {
99
					if (is_array($web_rechte[$a][$b][$c])) {
100
						//if (in_array($_SESSION[language], $web_rechte[$a][$b][$c]))
101
						{
102
							$web_rechte[$a][$b][$c] = $web_rechte[$a][$b][$c][array_search($_SESSION["language"],
103
								array_keys($web_rechte["online_shop"]["language"]))];
104
						}
105
						if ($web_rechte[$a][$b][$c] == "./.") {
106
							unset($web_rechte[$a][$b][$c]);
107
						}
108
					}
109
				}
110
			}
111
		}
851 lars 112
 
2255 lars 113
		unset($query);
114
		unset($result);
115
		unset($zeile);
116
		$CI->smarty->assign("web_rechte", $web_rechte);
117
		if ($CI->session->user_data["user"] == "admin") {
118
			$user_rechte = $web_rechte;
119
		} else {
120
			$sql = "
870 lars 121
				SELECT
122
					modules.interner_name AS module,
123
					tools.button_name AS tool,
124
					properties.interner_name AS property
125
				FROM
126
					webs,
127
					Access,
128
					webs_properties,
129
					user_properties,
130
					properties,
131
					tools,
132
					modules
133
				WHERE
2251 lars 134
					webs.domain='" . __SHOP__ . "'
870 lars 135
				AND
136
					webs_properties.webs=webs.ID
137
				AND
138
					webs_properties.properties=properties.ID
139
				AND
2251 lars 140
					Access.user='" . $CI->session->user_data["user"] . "'
870 lars 141
				AND
142
					user_properties.Access=Access.ID
143
				AND
144
					user_properties.properties=properties.ID
145
				AND
146
					properties.tools = tools.ID
147
				AND
148
					tools.modules = modules.ID
2255 lars 149
				AND
150
					tools.filename LIKE '/backend/%/'
870 lars 151
			";
2255 lars 152
			$result = $GLOBALS["db_red"]->query($sql);
153
			while ($zeile = $result->unbuffered_row('array')) {
154
				$user_rechte[$zeile["module"]][$zeile["tool"]][$zeile["property"]] = 1;
155
			}
156
		}
157
		$CI->smarty->assign("user_rechte", $user_rechte);
158
		$query_modules = "SELECT
1250 lars 159
				*
160
			FROM
161
				modules
162
			ORDER BY
163
				rang
164
		";
165
 
2255 lars 166
		$result_modules = $GLOBALS['db_red']->query($query_modules);
167
		while ($zeile_modules = $result_modules->unbuffered_row('array')) {
168
			$u_tools = array();
169
			if (isset($user_rechte[$zeile_modules["interner_name"]])) {
170
				$query_tools = "SELECT
1250 lars 171
						*
172
					FROM
173
						tools
174
					WHERE
2251 lars 175
						tools.modules = " . $zeile_modules["ID"] . "
1250 lars 176
					AND
177
						tools.hidden='false'
178
					ORDER BY
179
						tools.rang
180
				";
181
 
2255 lars 182
				$result_tools = $GLOBALS['db_red']->query($query_tools);
183
				while ($zeile_tools = $result_tools->unbuffered_row('array')) {
184
					if (isset($user_rechte[$zeile_modules["interner_name"]][$zeile_tools["button_name"]])) {
185
						if ($zeile_tools["filename"]) {
186
							$images_Pfad = 'images/navigation/';
187
							$imgsrc = $images_Pfad . 'bt_' . $zeile_tools["button_name"] . '.gif';
188
							$imgsrc_f2 = $images_Pfad . 'bt_' . $zeile_tools["button_name"] . '_f2.gif';
189
							$u_tools[] = array(
190
								"ID" => $zeile_tools["ID"],
191
								"image" => $imgsrc,
192
								"image_f2" => $imgsrc_f2,
193
								"filename" => $zeile_tools["filename"],
194
								"name" => $zeile_tools["name"],
195
								"icon" => $zeile_tools["icon"],
196
								);
197
						}
198
					}
199
				}
200
				if ($u_tools) {
201
					$u_modules[] = array(
202
						"name" => $zeile_modules["name"],
203
						"interner_name" => $zeile_modules["interner_name"],
204
						"ID" => $zeile_modules["ID"],
205
						"count" => count($user_rechte[$zeile_modules["interner_name"]]),
206
						"tools" => $u_tools,
207
						"icon" => $zeile_modules["icon"],
208
						);
209
				}
210
			}
211
		}
212
		$CI->smarty->assign('u_modules', $u_modules);
213
		$GLOBALS["web_rechte"] = $web_rechte;
214
		$GLOBALS["user_rechte"] = $user_rechte;
215
	}
851 lars 216
}
217
 
1232 lars 218
?>