summaryrefslogtreecommitdiffstats
path: root/modules-available/permissionmanager
diff options
context:
space:
mode:
authorUdo Walter2017-11-21 18:16:26 +0100
committerUdo Walter2017-11-21 18:16:26 +0100
commit3e8e5801fa88768bf0957f64b911d822ac28fead (patch)
tree707ebbd89cfbd74babd2939beea58b715ce070de /modules-available/permissionmanager
parentMerge remote-tracking branch 'origin/master' into permission-manager (diff)
downloadslx-admin-3e8e5801fa88768bf0957f64b911d822ac28fead.tar.gz
slx-admin-3e8e5801fa88768bf0957f64b911d822ac28fead.tar.xz
slx-admin-3e8e5801fa88768bf0957f64b911d822ac28fead.zip
[permissionmanager] fixed bug: role without locations was shown as role with all locations;
Diffstat (limited to 'modules-available/permissionmanager')
-rw-r--r--modules-available/permissionmanager/inc/getpermissiondata.inc.php5
-rw-r--r--modules-available/permissionmanager/inc/permissionutil.inc.php6
2 files changed, 4 insertions, 7 deletions
diff --git a/modules-available/permissionmanager/inc/getpermissiondata.inc.php b/modules-available/permissionmanager/inc/getpermissiondata.inc.php
index 9d69c722..13c7ca89 100644
--- a/modules-available/permissionmanager/inc/getpermissiondata.inc.php
+++ b/modules-available/permissionmanager/inc/getpermissiondata.inc.php
@@ -26,9 +26,8 @@ class GetPermissionData {
// get LocationIDs, Location Names, Roles of each Location
public static function getLocationData() {
- $res = Database::simpleQuery("SELECT role.roleid as roleid, rolename, GROUP_CONCAT(locationid) as locationids FROM role
- LEFT JOIN (SELECT roleid, COALESCE(locationid, 0) AS locationid FROM role_x_location) rxl
- ON role.roleid = rxl.roleid GROUP BY roleid ORDER BY rolename ASC");
+ $res = Database::simpleQuery("SELECT role.roleid as roleid, rolename, GROUP_CONCAT(COALESCE(locationid, 0)) AS locationids FROM role
+ INNER JOIN role_x_location ON role.roleid = role_x_location.roleid GROUP BY roleid ORDER BY rolename ASC");
$locations = Location::getLocations(0, 0, false, true);
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
$locationids = explode(",", $row['locationids']);
diff --git a/modules-available/permissionmanager/inc/permissionutil.inc.php b/modules-available/permissionmanager/inc/permissionutil.inc.php
index 17257eec..391cd047 100644
--- a/modules-available/permissionmanager/inc/permissionutil.inc.php
+++ b/modules-available/permissionmanager/inc/permissionutil.inc.php
@@ -29,11 +29,9 @@ class PermissionUtil
public static function getAllowedLocations($userid, $permissionid) {
- $res = Database::simpleQuery("SELECT role_x_permission.permissionid, rxl.locationid
- FROM user_x_role
+ $res = Database::simpleQuery("SELECT permissionid, COALESCE(locationid, 0) AS locationid FROM user_x_role
INNER JOIN role_x_permission ON user_x_role.roleid = role_x_permission.roleid
- LEFT JOIN (SELECT roleid, COALESCE(locationid, 0) AS locationid FROM role_x_location) rxl
- ON role_x_permission.roleid = rxl.roleid
+ INNER JOIN role_x_location ON role_x_permission.roleid = role_x_location.roleid
WHERE user_x_role.userid = :userid", array("userid" => $userid));
$allowedLocations = array();