'row')); Render::addtemplate('_page', $buttonColors); Render::closeTag('div'); if ($show === "roles") { $data = array("roles" => GetPermissionData::getRoles()); Render::addTemplate('rolestable', $data); } elseif ($show === "users") { $data = array("user" => GetPermissionData::getUserData(), "roles" => GetPermissionData::getRoles()); Render::addTemplate('userstable', $data); } elseif ($show === "locations") { $data = array("location" => GetPermissionData::getLocationData(), "roles" => GetPermissionData::getRoles()); Render::addTemplate('locationstable', $data); } } elseif ($show === "roleEditor") { $data = array(); $roleID = Request::get("roleid", false); $selectedLocations = array(); if ($roleID) { $roleData = GetPermissionData::getRoleData($roleID); $data["roleid"] = $roleID; $data["roleName"] = $roleData["name"]; if (count($roleData["locations"]) == 1 && $roleData["locations"][0] == 0) { $data["allLocChecked"] = "checked"; $data["selectizeClass"] = "faded unclickable"; } else { $data["allLocChecked"] = ""; $data["selectizeClass"] = ""; $selectedLocations = $roleData["locations"]; } if (count($roleData["permissions"]) == 1 && $roleData["permissions"][0] == "*") { $data["allPermChecked"] = "checked"; $data["permissionsClass"] = "faded unclickable"; } else { $data["allPermChecked"] = ""; $data["permissionsClass"] = ""; $data["selectedPermissions"] = implode(" ", $roleData["permissions"]); } } $permissions = PermissionUtil::getPermissions(); $data["locations"] = GetPermissionData::getLocations($selectedLocations); $data["moduleNames"] = array(); foreach (array_keys($permissions) as $moduleid) { $data["moduleNames"][] = array("id" => $moduleid, "name" => Module::get($moduleid)->getDisplayName()); } $data["permissionHTML"] = self::generatePermissionHTML($permissions, "*"); Render::addTemplate('roleeditor', $data); } } // Menu: Selected table is shown in blue (btn-primary) private function setButtonColors($show) { if ($show === 'roles') { $buttonColors['rolesButtonClass'] = 'btn-primary'; $buttonColors['usersButtonClass'] = 'btn-default'; $buttonColors['locationsButtonClass'] = 'btn-default'; } elseif ($show === 'users') { $buttonColors['rolesButtonClass'] = 'btn-default'; $buttonColors['usersButtonClass'] = 'btn-primary'; $buttonColors['locationsButtonClass'] = 'btn-default'; } elseif ($show === 'locations') { $buttonColors['rolesButtonClass'] = 'btn-default'; $buttonColors['usersButtonClass'] = 'btn-default'; $buttonColors['locationsButtonClass'] = 'btn-primary'; } else { $buttonColors['rolesButtonClass'] = 'btn-default'; $buttonColors['usersButtonClass'] = 'btn-default'; $buttonColors['locationsButtonClass'] = 'btn-default'; } return $buttonColors; } private static function generatePermissionHTML($subPermissions, $permString) { $genModuleBox = $permString == "*"; $res = ""; foreach ($subPermissions as $k => $v) { $res .= Render::parse($genModuleBox ? "modulepermissionbox" : (is_array($v) ? "permissiontreenode" : "permission"), array("id" => $genModuleBox ? $k : $permString.".".$k, "name" => $genModuleBox ? Module::get($k)->getDisplayName(): $k, "HTML" => is_array($v) ? self::generatePermissionHTML($v, $genModuleBox ? $k : $permString.".".$k) : "", "description" => $v)); } return $res; } }