Subversion-Projekte lars-tiefland.ci

Revision

Revision 1091 | Revision 1093 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1026 lars 1
<?php
2
 
3
/**
4
 *
5
 * @package WebanOS CI
6
 * @author Lars Tiefland <ltiefland@gmail.com>
7
 * @copyright 2016
8
 * @version $Rev: 1092 $
9
 */
10
 
1028 lars 11
class User_rechte_model extends CI_Model
1026 lars 12
{
13
	public function __construct()
14
	{
15
		parent::__construct();
16
	}
17
 
1030 lars 18
	public function get_rechte($ID = null)
1026 lars 19
	{
1032 lars 20
		$user_properties = array();
1026 lars 21
		if ($ID)
22
		{
23
			$sql = "
24
                SELECT
25
                    *
26
                FROM
27
                    user_properties
28
                WHERE
29
                    Access = $ID
30
            ";
31
			$result = $GLOBALS["db_red"]->query($sql);
1033 lars 32
			while ($zeile = $result->unbuffered_row('array'))
1026 lars 33
			{
34
				$user_properties[$zeile["properties"]] = 1;
35
			}
36
 
37
			$sql = "
38
                SELECT
39
                    *
40
                FROM
41
                    Access
42
                WHERE
43
                    ID = $ID
44
            ";
45
			$result = $GLOBALS["db_red"]->query($sql);
1030 lars 46
			$user = $result->row_array();
47
			list($user_name, $user_site) = explode("@", $user["user"]);
1026 lars 48
			$user["site"] = $user_site;
49
			$user["properties"] = $user_properties;
1030 lars 50
			return $user;
1026 lars 51
		}
1030 lars 52
	}
53
 
54
	public function get_rights()
55
	{
1035 lars 56
		$modules = array();
1029 lars 57
		$sql = "
1026 lars 58
            SELECT
59
                *
60
            FROM
61
                modules
62
            ORDER by
63
                rang
64
        ";
65
		$result = $GLOBALS["db_red"]->query($sql);
1034 lars 66
		while ($module = $result->unbuffered_row('array'))
1026 lars 67
		{
68
			//$module["name"] = html_entity_decode($module["name"]);
1035 lars 69
			if (isset($GLOBALS["web_rechte"][$module["interner_name"]]))
1026 lars 70
			{
1029 lars 71
				$sql = "
1026 lars 72
                    SELECT
73
                        tools.*
74
                    FROM
75
                        tools
76
                    WHERE
77
                        tools.modules = ".$module["ID"]."
78
                    ORDER BY
79
                        tools.rang
80
				";
1034 lars 81
				$result_tools = $GLOBALS["db_red"]->query($sql);
82
				while ($tool = $result_tools->unbuffered_row('array'))
1026 lars 83
				{
84
					//$tool["name"] = ($tool["name"]);
1035 lars 85
					if (isset($GLOBALS["web_rechte"][$module["interner_name"]][$tool["button_name"]]))
1026 lars 86
					{
1029 lars 87
						$sql = "
1026 lars 88
                            SELECT
89
                                properties.*
90
                            FROM
91
                                properties
92
                            WHERE
93
                                properties.tools = ".$tool["ID"]."
94
                            AND
95
                                hidden = 'false'
96
                            ORDER BY
97
                                properties.rang
98
                        ";
1034 lars 99
						$result_properties = $GLOBALS["db_red"]->query($sql);
100
						while ($property = $result_properties->unbuffered_row('array'))
1026 lars 101
						{
102
							//$property["name"] = utf8_encode($property["name"]);
1035 lars 103
							if (isset($GLOBALS["web_rechte"][$module["interner_name"]][$tool["button_name"]][$property["interner_name"]]))
1026 lars 104
							{
1035 lars 105
								if ($GLOBALS["web_rechte"][$module["interner_name"]][$tool["button_name"]][$property["interner_name"]])
1026 lars 106
								{
1035 lars 107
									$property["web_name"] = $GLOBALS["web_rechte"][$module["interner_name"]][$tool["button_name"]][$property["interner_name"]];
1026 lars 108
									if (($property["web_name"]))
109
									{
110
										if (stristr($property["web_name"], ";"))
111
										{
112
											$name = explode(";", $property["web_name"]);
113
											if (stristr($name[0], ":"))
114
											{
115
												$property["name"] = $name[0];
116
											}
117
 
118
										}
1037 lars 119
										//elseif ($property["web_name"][strlen($property["web_name"])] == ":")
120
										elseif (substr($property["web_name"], -1, 1) == ":")
1026 lars 121
										{
122
											$property["name"] = $property["web_name"];
123
										}
124
									}
125
								}
126
								$tool["properties"][] = $property;
127
							}
128
						}
1036 lars 129
						if (@count($tool["properties"]))
1026 lars 130
						{
131
							$module["tools"][] = $tool;
132
						}
133
					}
134
				}
1036 lars 135
				if (@count($module["tools"]))
1026 lars 136
				{
137
					$modules[] = $module;
138
				}
139
			}
140
		}
141
		return $modules;
142
	}
143
 
144
	public function get_info($user_id)
145
	{
146
		$sql = "SELECT
147
				*
148
			FROM
149
				Access
150
			WHERE
151
				id=".$user_id."
152
		";
153
		$res = $GLOBALS["db_red"]->query($sql);
154
		$user = $res->row_array();
155
		list($user_local, $domain) = explode("@", $user["user"]);
156
		$user["domain"] = $domain;
157
		$user["local"] = $user_local;
158
		$user["datenquellen"] = unserialize($user["datenquellen"]);
159
		return $user;
160
	}
1085 lars 161
 
162
	public function save()
163
	{
164
		if ($_SERVER['SERVER_NAME'] == "ci.starfleethq.de")
165
		{
166
			$GLOBALS['db_red_write'] = $GLOBALS['db_red'];
167
		}
168
		else
169
		{
170
			$GLOBALS['db_red_write'] = $this->load->database('db_red_write', TRUE);
171
		}
1092 lars 172
		$sql = "
1085 lars 173
			INSERT INTO
174
				user_properties
175
			(
176
				Access,
177
				properties
178
			)
179
			VALUES
180
			(
181
				?,
182
				?
183
			)
184
		";
185
		$GLOBALS['db_red_write']->trans_start();
186
		$this->del();
1087 lars 187
		foreach ($this->input->post('modules') as $tools)
1085 lars 188
		{
1091 lars 189
			foreach ($tools as $properties)
1085 lars 190
			{
191
				foreach ($properties as $elem => $val)
192
				{
193
					$data = array(
194
						$this->input->post('ID'),
195
						$elem,
196
						);
197
					$GLOBALS['db_red_write']->query($sql, $data);
198
				}
199
			}
200
		}
201
		$GLOBALS['db_red_write']->trans_complete();
202
	}
203
 
204
	private function del()
205
	{
206
		$sql = "
207
			DELETE FROM
208
				user_properties
209
			WHERE
210
				access=".$this->input->post('ID')."
211
		";
212
		$GLOBALS['db_red_write']->query($sql);
213
	}
1026 lars 214
}
215
 
216
?>