From 7807e30a69ab39b3f2a7f20d2608ba6b46b456e8 Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Tue, 28 Mar 2017 11:23:24 +0200 Subject: [permission-manager] first part of UI, database table, sql queries and db methods --- modules-available/permissionmanager/page.inc.php | 63 ++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 4 deletions(-) (limited to 'modules-available/permissionmanager/page.inc.php') diff --git a/modules-available/permissionmanager/page.inc.php b/modules-available/permissionmanager/page.inc.php index 871e7946..faf8b300 100644 --- a/modules-available/permissionmanager/page.inc.php +++ b/modules-available/permissionmanager/page.inc.php @@ -14,6 +14,20 @@ class Page_PermissionManager extends Page Message::addError('main.no-permission'); Util::redirect('?do=Main'); // does not return } + + $action = Request::any('action', 'show', 'string'); + if ($action === 'addRoleToUser') { + $users = Request::post('users', ''); + $roles = Request::post('roles', ''); + DbUpdate::addRoleToUser($users, $roles); + } else if ($action === 'removeRoleFromUser') { + $users = Request::post('users', ''); + $roles = Request::post('roles', ''); + DbUpdate::removeRoleFromUser($users, $roles); + } else if ($action === 'deleteRole') { + $id = Request::post('deleteId', false, 'string'); + DbUpdate::deleteRole($id); + } } /** @@ -21,10 +35,51 @@ class Page_PermissionManager extends Page */ protected function doRender() { - Render::addTemplate('_page', array( - 'foo' => 'bar', - 'now' => date('d.m.Y H:i:s') - )); + $show = Request::get("show", false); + // get menu button colors + $buttonColors = self::setButtonColors($show); + + $data = array(); + + // switch between tables, but always show menu to switch tables + if (!$show || $show === 'roles' || $show === 'users' || $show === 'locations') { + Render::openTag('div', array('class' => 'row')); + Render::addtemplate('_page', $buttonColors); + Render::closeTag('div'); + + if ($show === "roles") { + $data = array("roles" => GetData::getRoles()); + Render::addTemplate('rolesTable', $data); + } else if ($show === "users") { + $data = array("user" => GetData::getUserData(), "roles" => GetData::getRoles()); + Render::addTemplate('usersTable', $data); + } else if ($show === "locations") { + Render::addTemplate('locationsTable', $data); + } + } + } + + // Menu: Selected table is shown in blue (btn-primary) + function setButtonColors($show) { + if ($show === 'roles') { + $buttonColors['rolesButtonClass'] = 'btn-primary'; + $buttonColors['usersButtonClass'] = 'btn-default'; + $buttonColors['locationsButtonClass'] = 'btn-default'; + } else if ($show === 'users') { + $buttonColors['rolesButtonClass'] = 'btn-default'; + $buttonColors['usersButtonClass'] = 'btn-primary'; + $buttonColors['locationsButtonClass'] = 'btn-default'; + } else if ($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; } } -- cgit v1.2.3-55-g7522