Subversion-Projekte lars-tiefland.ci

Revision

Revision 2253 | Ganze Datei anzeigen | Leerzeichen ignorieren | Details | Blame | Letzte Änderung | Log anzeigen | RSS feed

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