Subversion-Projekte lars-tiefland.ci

Revision

Revision 1254 | Revision 1555 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

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