Subversion-Projekte lars-tiefland.ci

Revision

Revision 1093 | 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: 2383 $
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 = "
2383 lars 24
				SELECT
25
					*
26
				FROM
27
					user_properties
28
				WHERE
29
					Access = ".$ID."
30
			";
1026 lars 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 = "
2383 lars 38
				SELECT
39
					*
40
				FROM
41
					Access
42
				WHERE
43
					ID = ".$ID."
44
			";
1026 lars 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 = "
2383 lars 58
			SELECT
59
				*
60
			FROM
61
				modules
62
			ORDER by
63
				rang
64
		";
1026 lars 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 = "
2383 lars 72
					SELECT
73
						tools.*
74
					FROM
75
						tools
76
					WHERE
77
						tools.modules = ".$module["ID"]."
78
					ORDER BY
79
						tools.rang
1026 lars 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 = "
2383 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
				{
1093 lars 193
					if ($val)
194
					{
195
						$data = array(
196
							$this->input->post('ID'),
197
							$elem,
198
							);
199
						$GLOBALS['db_red_write']->query($sql, $data);
200
					}
1085 lars 201
				}
202
			}
203
		}
204
		$GLOBALS['db_red_write']->trans_complete();
205
	}
206
 
207
	private function del()
208
	{
209
		$sql = "
210
			DELETE FROM
211
				user_properties
212
			WHERE
213
				access=".$this->input->post('ID')."
214
		";
215
		$GLOBALS['db_red_write']->query($sql);
216
	}
1026 lars 217
}
218
 
219
?>