Quellcode durchsuchen

Added nginx auth_request dynamic endpoints to allow permission management on organizr front end

Daniel Metcalf vor 6 Jahren
Ursprung
Commit
ef79605f06
1 geänderte Dateien mit 25 neuen und 1 gelöschten Zeilen
  1. 25 1
      api/functions/organizr-functions.php

+ 25 - 1
api/functions/organizr-functions.php

@@ -1608,7 +1608,15 @@ function auth()
 	$ban = isset($_GET['ban']) ? strtoupper($_GET['ban']) : "";
 	$ban = isset($_GET['ban']) ? strtoupper($_GET['ban']) : "";
 	$whitelist = isset($_GET['whitelist']) ? $_GET['whitelist'] : false;
 	$whitelist = isset($_GET['whitelist']) ? $_GET['whitelist'] : false;
 	$blacklist = isset($_GET['blacklist']) ? $_GET['blacklist'] : false;
 	$blacklist = isset($_GET['blacklist']) ? $_GET['blacklist'] : false;
-	$group = isset($_GET['group']) ? (int)$_GET['group'] : (int)0;
+    $group = 0;
+    $groupParam = $_GET['group'];
+    if(isset($groupParam)) {
+        if (is_numeric($groupParam)) {
+            $group = (int)$groupParam;
+        } else {
+            $group = getTabGroup($groupParam);
+        }
+    }
 	$currentIP = userIP();
 	$currentIP = userIP();
 	$unlocked = ($GLOBALS['organizrUser']['locked'] == '1') ? false : true;
 	$unlocked = ($GLOBALS['organizrUser']['locked'] == '1') ? false : true;
 	if (isset($GLOBALS['organizrUser'])) {
 	if (isset($GLOBALS['organizrUser'])) {
@@ -1641,6 +1649,22 @@ function auth()
 	}
 	}
 }
 }
 
 
+    function getTabGroup ($tab)
+    {
+        try {
+            $connect = new Dibi\Connection([
+                                               'driver'   => 'sqlite3',
+                                               'database' => $GLOBALS['dbLocation'] . $GLOBALS['dbName'],
+                                           ]);
+            $all = $connect->fetch("SELECT group_id FROM tabs WHERE name = '%?%'", $tab);
+            return $all ? $all['group_id'] : 0;
+        } catch (\Dibi\Exception $e) {
+            writeLog('error', 'Tab Group Function - Error Fetching Tab Alias', $tab);
+            return 0;
+        }
+
+    }
+
 function logoOrText()
 function logoOrText()
 {
 {
 	if ($GLOBALS['useLogo'] == false) {
 	if ($GLOBALS['useLogo'] == false) {