. */ define("ROOTPATH", "../"); define("HEADER_AFTER_ROWS", 25); require_once(ROOTPATH . "include/include.php"); require_once(ROOTPATH . "include/classes/AjaxResponse.php"); $layout = new AdminLayout(isset($_REQUEST['ajax'])); $layout->init(); if( !$layout->hasFunction("role_view") && !$layout->hasFunction("role_edit") ) { $layout->noAccess(); }else { if( isset($_REQUEST['ajax']) ) { $response = new AjaxResponse(); if( isset($_POST['value']) && isset($_POST['function']) && preg_match("/^[0-9]+$/", $_POST['function']) && isset($_POST['role']) && preg_match("/^[0-9]+$/", $_POST['role']) ) { if( $_POST['value']=="yes" ) { $query = "INSERT INTO `function_roles` SET `function_id`=".$GLOBALS['sql']->escape($_POST['function']).", `role_id`=".$GLOBALS['sql']->escape($_POST['role']); }else { $query = "DELETE FROM `function_roles` WHERE `function_id`=".$GLOBALS['sql']->escape($_POST['function'])." AND `role_id`=".$GLOBALS['sql']->escape($_POST['role']); } if( $GLOBALS['sql']->query($query) ) { $response->addRefresh("functionRole-".$_POST['function']."-".$_POST['role'], getImage($_POST['value']=="yes", $_POST['function'], $_POST['role'])); }else { $response->addRefresh("feedback", "Failed executing update query"); } }else { $response->addRefresh("feedback", "Invalid request received"); } $response->sendResponse(); }else { $layout->pageHeader(); $editable = $layout->hasFunction("role_edit"); if( isset($_GET['core']) ) { $_SESSION['roles_type'] = "core"; }elseif( isset($_GET['event']) ) { $_SESSION['roles_type'] = "event"; }elseif( !isset($_SESSION['roles_type']) ) { $_SESSION['roles_type'] = "core"; } $layout->echoln("   "); $layout->echoln(""); $allRoles = array(); $query = "SELECT `id`, `name` FROM `roles` WHERE `type`='" . $GLOBALS['sql']->escape($_SESSION['roles_type']) . "' ORDER BY `name`"; if( $GLOBALS['sql']->query($query) && $GLOBALS['sql']->getNumRows()>0 ) { while( $row = $GLOBALS['sql']->fetchAssoc() ) { $allRoles[ $row['id'] ] = $row['name']; } } $allFunctions = array(); $query = "SELECT `id`, `name` FROM `functions` WHERE `type`='" . $GLOBALS['sql']->escape($_SESSION['roles_type']) . "' ORDER BY `name`"; if( $GLOBALS['sql']->query($query) && $GLOBALS['sql']->getNumRows()>0 ) { while( $row = $GLOBALS['sql']->fetchAssoc() ) { $allFunctions[ $row['id'] ] = $row['name']; } } $layout->echoln("

Administrate roles

"); $layout->echoln("

Click on an access icon to change.

"); $functionRole = array(); $query = "SELECT `role_id`, `function_id` FROM `function_roles`"; if( $GLOBALS['sql']->query($query) && $GLOBALS['sql']->getNumRows()>0 ) { while( $row = $GLOBALS['sql']->fetchAssoc() ) { $functionRole[ $row['function_id'] ][ $row['role_id'] ] = true; } } $layout->echoln(" "); $r = 0; foreach( $allFunctions as $function_id => $function_name ) { if( $r%HEADER_AFTER_ROWS==0 ) { $layout->echoln(" "); $layout->echoln(" "); foreach( $allRoles as $name ) { $layout->echoln(" "); } $layout->echoln(" "); } $layout->echoln(" "); $layout->echoln(" "); foreach( $allRoles as $role_id => $role_name ) { $layout->echoln(" "); } $layout->echoln(" "); } $layout->echoln("
Function".$name."
".$function_name."".getImage(isset($functionRole[$function_id][$role_id]), $function_id, $role_id)."
"); $layout->pageFooter(); } } function getImage($value, $function_id, $role_id) { $attributes = array(); $attributes['height'] = "12px"; $attributes['width'] = "12px"; $attributes['onclick'] = "ajaxPost('roles.php', 'ajax=1&function=".$function_id."&role=".$role_id."&value=".($value ? "no" : "yes")."')"; return IconHelper::getIcon($value ? "check" : "cross", $value ? "Yes" : "No", $attributes); } ?>