|
1 <?php |
|
2 |
|
3 /** |
|
4 * @author Bettina Schwarzer, Fritz-Haber-Institut |
|
5 * @copyright 10/2011 |
|
6 * |
|
7 * INSERT/UPDATE/DELETE Rechte |
|
8 */ |
|
9 |
|
10 error_reporting(E_ALL ^ E_NOTICE); |
|
11 |
|
12 session_start(); |
|
13 if (! isset($_SESSION["userid"])) |
|
14 { |
|
15 include_once ("inc/func_lib.inc.php"); |
|
16 login($_SERVER["PHP_SELF"]); |
|
17 exit; |
|
18 } |
|
19 |
|
20 if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("rte",$_SESSION["recht"]) && !in_array("rtr",$_SESSION["recht"]))) |
|
21 { |
|
22 header("Location: start.php"); |
|
23 exit; |
|
24 } |
|
25 |
|
26 ?> |
|
27 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
|
28 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
|
29 |
|
30 <head> |
|
31 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> |
|
32 <link type="text/css" href="/fhiiqm/css/db.css" rel="Stylesheet" /> |
|
33 <link type="text/css" href="/fhiiqm/css/jquery/ui-lightness/jquery-ui-1.8.16.custom.css" rel="Stylesheet" /> |
|
34 <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-1.6.2.min.js"></script> |
|
35 <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-ui-1.8.16.custom.min.js"></script> |
|
36 <title>Nutzer & Rechte</title> |
|
37 </head> |
|
38 |
|
39 <body> |
|
40 |
|
41 <script> |
|
42 $(document).ready(function() { |
|
43 $("#persknr").focus(); |
|
44 $("#persknr").autocomplete({ |
|
45 source: "/fhiiqm/inc/ma_list_ac.inc.php", |
|
46 minLength: 2, |
|
47 select: function(event,ui){$("#pid").val(ui.item.id);} |
|
48 }); |
|
49 $("input").filter("long20").addClass("long20"); |
|
50 }); |
|
51 </script> |
|
52 |
|
53 <?php |
|
54 echo " "; |
|
55 echo "<div class=\"float-br smaller\" valign='top'>"; |
|
56 echo " user: " . $_SESSION["userid"]; |
|
57 echo " <a class='sc' href='/fhiiqm/logout.php' title='Session beenden'>logout</a></div>\n"; |
|
58 echo "<div class=\"float-r\"><img src=\"img/user_go.png\" border=\"0\" alt=\"User, Rechte eingeben\" title=\"User, Rechte eingeben\"/></div>\n"; |
|
59 |
|
60 include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php"); |
|
61 if (!isset($dbc) || !$dbc) $dbc = new dbconnection(); |
|
62 |
|
63 $pget = $_GET["pid"]; |
|
64 $ok = $_POST["ok"]; |
|
65 $ins = $_POST["ins"]; |
|
66 $del = $_POST["del"]; |
|
67 $rt = $_POST["rt"]; |
|
68 if (!$rt['okn']) $ok=false; |
|
69 // print_r($rt); echo "$ins, $del<br />"; |
|
70 if (!$ok || (!$ins && !$del)) |
|
71 { |
|
72 if ($pget && !$ins && !$del) |
|
73 { |
|
74 // Daten zu Mitarbeiter bereitstellen |
|
75 $rt["pid"] = $pget; |
|
76 $sql = "SELECT userid FROM fhiiqm.userweb WHERE persknr = $pget"; |
|
77 if ($userid = $dbc->querySingleItem($sql)) |
|
78 { |
|
79 $rt["userid"] = $userid; |
|
80 $sql = "SELECT CONCAT (nachname, ', ',vorname) AS ma FROM fhiiqm.Mitarbeiter WHERE persknr = $pget"; |
|
81 if ($result = $dbc -> queryObjectArray($sql)) |
|
82 foreach ($result as $row) |
|
83 $rt["pers"] = $row->ma; |
|
84 $sql = "SELECT recht_ID FROM fhiiqm.user_recht WHERE userid = '$userid'"; |
|
85 if ($resr = $dbc -> queryObjectArray($sql)) |
|
86 foreach ($resr as $row) |
|
87 $rt["recht"][] = $row->recht_ID; |
|
88 $sql = "SELECT prod_group_ID FROM fhiiqm.user_prodgroup WHERE userid = '$userid'"; |
|
89 if ($resg = $dbc -> queryObjectArray($sql)) |
|
90 foreach ($resg as $row) |
|
91 $rt["prodg"][] = $row->prod_group_ID; |
|
92 } |
|
93 } |
|
94 |
|
95 include_once("form/recht_form.inc.php"); |
|
96 |
|
97 if ($ins || $del) |
|
98 { |
|
99 |
|
100 if ($ins) $frage = "Alle Angaben ok?"; else $frage = "Nutzer und seine Rechte wirklich löschen?"; |
|
101 echo "<tr> |
|
102 <td class=\"red\" valign=\"top\" align=\"left\">$frage</td> |
|
103 <td><input type=\"checkbox\" name=\"ok\" value=\"1\""; |
|
104 if ($ok) echo "checked"; |
|
105 echo "></td>\n</tr>\n"; |
|
106 } |
|
107 |
|
108 if (!is_null($_SESSION["recht"]) && in_array("rte", $_SESSION["recht"])) |
|
109 { |
|
110 if ($pget || $rt["pget"]) $sub = "ändern"; else $sub = "eingeben"; |
|
111 |
|
112 echo "<tr>\n"; |
|
113 echo " |
|
114 <td> </td> |
|
115 <td><input class=\"button\" type=\"submit\" value=\"$sub\" name=\"ins\" title=\"$sub\" />"; |
|
116 if ($pget || $rt["pget"]) |
|
117 echo " <input class=\"button\" type=\"submit\" value=\"löschen\" name=\"del\" title=\"delete\" />"; |
|
118 echo "</td>\n";; |
|
119 echo "</tr>\n"; |
|
120 } |
|
121 echo "</table>\n"; |
|
122 echo "</div>\n"; |
|
123 if (!is_null($_SESSION["recht"]) && !in_array("rte", $_SESSION["recht"])) |
|
124 echo "<p> <a href=\"recht_list.php\" target=\"_self\" title=\"Nutzerliste\">« zur Nutzerliste</a></p>\n"; |
|
125 echo "</form>\n"; |
|
126 |
|
127 } |
|
128 elseif ($ok && ($ins || $del)) |
|
129 { |
|
130 echo "<div align='center'>\n"; |
|
131 //daten speichern |
|
132 |
|
133 if ($ins == "eingeben") |
|
134 { |
|
135 // pruefen, ob userid schon existiert |
|
136 $sql = "SELECT persknr, userid FROM fhiiqm.userweb WHERE userid = '" . $rt["userid"] . "'"; |
|
137 if ($result = $dbc ->queryObjectArray($sql)) |
|
138 { |
|
139 foreach ($result as $row) |
|
140 { |
|
141 echo "<p class='red'>User-ID <b>" . $rt["userid"] ."</b> ist schon vorhanden!</p>"; |
|
142 $erruid = 1; |
|
143 } |
|
144 } |
|
145 } |
|
146 else |
|
147 { |
|
148 // alte Rechte loeschen |
|
149 $sql = "DELETE FROM fhiiqm.user_recht WHERE userid ='" . $rt["userid"] . "'"; |
|
150 $resr = $dbc -> execute($sql); |
|
151 $sql = "DELETE FROM fhiiqm.user_prodgroup WHERE userid ='" . $rt["userid"] . "'"; |
|
152 $resp = $dbc -> execute($sql); |
|
153 if (!$resr || !$resp) $erruid = 1; |
|
154 } |
|
155 if ($del) |
|
156 { |
|
157 // User loeschen |
|
158 $sql = "DELETE FROM fhiiqm.userweb WHERE userid ='" . $rt["userid"] . "'"; |
|
159 $res = $dbc -> execute($sql); |
|
160 if ($res) |
|
161 echo "<p class='green'><b>User-ID '".$rt["userid"]."' und zugeordete Rechte wurden gelöscht.</b></p>\n"; |
|
162 else |
|
163 echo "<p class='red'><b>Löschen von User-ID '".$rt["userid"]."' und zugeordeter Rechte ist fehlgeschlagen.</b></p>\n"; |
|
164 $erruid = 1; // |
|
165 } |
|
166 if (!$erruid) |
|
167 { // Rechte speichern |
|
168 $stmt = $dbc -> stmtinit(); |
|
169 if (is_object($stmt)) |
|
170 { |
|
171 $result = 1; |
|
172 if ($ins == "eingeben") |
|
173 { |
|
174 $stmt -> prepare("INSERT INTO fhiiqm.userweb (persknr, userid) VALUES (?,?)"); |
|
175 $stmt -> bind_param('is',$rt["pid"],$rt["userid"]); |
|
176 $result = $stmt -> execute(); |
|
177 if ($stmt->error) echo "error userweb: " . $stmt->errno." -> ".$stmt->error . "<br><br>\n"; |
|
178 $stmt -> reset(); |
|
179 } |
|
180 if ($result) |
|
181 { |
|
182 $resr = 1; |
|
183 if (is_array($rt["recht"]) && !is_null($rt["recht"])) |
|
184 { |
|
185 $stmt -> prepare("INSERT INTO fhiiqm.user_recht (userid,recht_ID) VALUES (?,?)"); |
|
186 foreach ($rt["recht"] as $re) |
|
187 { |
|
188 $stmt -> bind_param('ss',$rt["userid"],$re); |
|
189 $resr = $stmt -> execute(); |
|
190 } |
|
191 $stmt -> reset(); |
|
192 } |
|
193 if ($stmt->error) echo "error user_recht: " . $stmt->errno." -> ".$stmt->error . "<br><br>\n"; |
|
194 $resp = 1; |
|
195 if (is_array($rt["prodg"]) && !is_null($rt["prodg"])) |
|
196 { |
|
197 echo "userid = " . $rt["userid"] . "<br />"; |
|
198 $stmt -> prepare("INSERT INTO fhiiqm.user_prodgroup (userid,prod_group_ID) VALUES (?,?)"); |
|
199 foreach ($rt["prodg"] as $re) |
|
200 { |
|
201 $stmt -> bind_param('ss',$rt["userid"],$re); |
|
202 $resp = $stmt -> execute(); |
|
203 } |
|
204 } |
|
205 if ($stmt->error) echo "error user_prodgroup: " . $stmt->errno." -> ".$stmt->error . "<br><br>\n"; |
|
206 |
|
207 } |
|
208 $stmt -> close(); |
|
209 } |
|
210 if ($result && $resr && $resp) |
|
211 echo "<p class='green'><b>User-ID '".$rt["userid"]."' und zugeordete Rechte wurden erfolgreich gespeichert.</b></p>\n"; |
|
212 else |
|
213 echo "<p class='red'><b>Speichern von User-ID '".$rt["userid"]."' und zugeordeter Rechte war nicht erfolgreich.</b></p>\n"; |
|
214 } |
|
215 $dbc -> close(); |
|
216 echo "</div>\n"; |
|
217 echo "<p> <a href=\"".$_SERVER["PHP_SELF"]."\" target=\"_self\" title=\"Rechte erfassen\">Weiteren User & Rechte erfassen</a></p>\n"; |
|
218 echo "<p> <a href='/fhiiqm/recht_list.php' title='Nutzerliste'>zur Nutzerliste</a></p>"; |
|
219 } |
|
220 ?> |
|
221 </body> |
|
222 </html> |