php-mpos/public/include/lib/smarty_plugins/function.acl.php
Sebastian Grewe d7f2e6e5ac [UPDATE] ACL Management
* [ADDED] Smarty acl_check function
* [ADDED] Optional default return  value for getValue calls
* [UPDATE] ACL Checks in page controllers
* [UPDATE] Navigation template to use check_acl from Smarty
* [ADDED] New ACL options where needed
* [REMOVED] Disable pages from System Settings Tab
* [ADDED] Above removed pages into ACL Settings Tab

This will make usage of ACLs a bit easier and transparent.
Also fixes #1731 once merged.
2014-02-14 10:56:25 +01:00

30 lines
876 B
PHP

<?php
$smarty->registerPlugin("function","acl_check", "check_acl_access");
function check_acl_access($params, $smarty)
{
$isAuthenticated = isset($_SESSION['AUTHENTICATED']) ? true : false;
$iAclSetting = $params['acl'];
$sUrl = '<li class="'.$params['icon'].'"><a href="'.$_SERVER['SCRIPT_NAME'].'?page='.$params['page'].'&action='.$params['action'].'">'.$params['name'].'</a></li>';
if (isset($params['fallback']))
$sFallbackUrl = '<li class="'.$params['icon'].'"><a href="'.$_SERVER['SCRIPT_NAME'].'?page='.$params['page'].'">'.$params['name'].'</a></li>';
switch($iAclSetting) {
case '0':
if ($isAuthenticated) {
echo $sUrl;
} else if (isset($params['fallback']) && !$isAuthenticated) {
echo $sFallbackUrl;
}
break;
case '1':
echo $sUrl;
break;
case '2':
break;
default:
echo $sUrl;
break;
}
}
?>