Generelle Su-Möglichkeit für alle Kundenaccounts zu ihren eigenen Usern
Bernd Wurst

Bernd Wurst commited on 2015-10-29 20:46:09
Zeige 4 geänderte Dateien mit 37 Einfügungen und 28 Löschungen.

... ...
@@ -28,6 +28,11 @@ if ($role & ROLE_SYSADMIN) {
28 28
   unset($_SESSION['admin_user']);
29 29
   header('Location: '.$prefix.'go/su/su');
30 30
   die();
31
+} elseif ($role & ROLE_CUSTOMER) {
32
+  setup_session($role, $admin_user);
33
+  unset($_SESSION['admin_user']);
34
+  header('Location: '.$prefix.'go/su/su_customer');
35
+  die();
31 36
 }
32 37
 
33 38
 
... ...
@@ -142,3 +142,31 @@ function build_results($term) {
142 142
 }
143 143
 
144 144
 
145
+function su($type, $id) {
146
+  $role = NULL;
147
+  $admin_user = $_SESSION['userinfo']['username'];
148
+  $_SESSION['admin_user'] = $admin_user;
149
+  $role = find_role($id, '', True);
150
+  if (!$role) {
151
+    unset($_SESSION['admin_user']);
152
+    return False;
153
+  }
154
+  setup_session($role, $id);
155
+  if ($type == 'c') {
156
+    if (! (ROLE_CUSTOMER & $_SESSION['role'])) {
157
+      session_destroy();
158
+      system_failure('Es wurde ein "su" zu einem Kundenaccount angefordert, das war aber kein Kundenaccount!');
159
+    }
160
+  } elseif ($type == 'u') {
161
+    if (! (ROLE_SYSTEMUSER & $_SESSION['role'])) {
162
+      session_destroy();
163
+      system_failure('Es wurde ein "su" zu einem Benutzeraccount angefordert, das war aber kein Benutzeraccount!');
164
+    }
165
+  } elseif ($type) {
166
+    // wenn type leer ist, dann ist es auch egal
167
+    system_failure('unknown type');
168
+  }
169
+
170
+  redirect('../../go/index/index');
171
+  die();
172
+}
... ...
@@ -16,6 +16,10 @@ Nevertheless, in case you use a significant part of this code, we ask (but not r
16 16
 
17 17
 $role = $_SESSION['role'];
18 18
 
19
+if ($role & ROLE_CUSTOMER)
20
+{
21
+  $menu["su_customer"] = array("label" => "Benutzer wechseln", "file" => "su_customer", "weight" => -10, "submenu" => "systemuser_account");
22
+}
19 23
 if ($role & ROLE_SYSADMIN)
20 24
 {
21 25
   $menu["su_su"] = array("label" => "Su-Login", "file" => "su", "weight" => -10);
... ...
@@ -24,34 +24,6 @@ require_once('su.php');
24 24
 require_role(ROLE_SYSADMIN);
25 25
 
26 26
 
27
-function su($type, $id) {
28
-  $role = NULL;
29
-  $admin_user = $_SESSION['userinfo']['username'];
30
-  $_SESSION['admin_user'] = $admin_user;
31
-  $role = find_role($id, '', True);
32
-  if (!$role) {
33
-    unset($_SESSION['admin_user']);
34
-    return False;
35
-  }
36
-  setup_session($role, $id);
37
-  if ($type == 'c') {
38
-    if (! (ROLE_CUSTOMER & $_SESSION['role'])) {
39
-      session_destroy();
40
-      system_failure('Es wurde ein "su" zu einem Kundenaccount angefordert, das war aber kein Kundenaccount!');
41
-    }
42
-  } elseif ($type == 'u') {
43
-    if (! (ROLE_SYSTEMUSER & $_SESSION['role'])) {
44
-      session_destroy();
45
-      system_failure('Es wurde ein "su" zu einem Benutzeraccount angefordert, das war aber kein Benutzeraccount!');
46
-    }
47
-  } elseif ($type) {
48
-    // wenn type leer ist, dann ist es auch egal
49
-    system_failure('unknown type');
50
-  }
51
-
52
-  redirect('../../go/index/index');
53
-  die();
54
-}
55 27
 
56 28
 if (isset($_GET['do']))
57 29
 {
58 30