コード例 #1
0
// function user_has_permission($user,$perm)
if (!$cachelib->isCached("allperms")) {
    $allperms = $userlib->get_permissions(0, -1, 'permName_desc', '', '');
    $cachelib->cacheItem("allperms", serialize($allperms));
} else {
    $allperms = unserialize($cachelib->getCached("allperms"));
}
$allperms = $allperms["data"];
//Initializes permissions
foreach ($allperms as $vperm) {
    $perm = $vperm["permName"];
    ${$perm} = 'n';
    $smarty->assign("{$perm}", 'n');
}
// Permissions
if ($user == 'admin' || $user && $userlib->user_has_permission($user, 'tiki_p_admin')) {
    //Gives admins all permissions
    foreach ($allperms as $vperm) {
        $perm = $vperm['permName'];
        ${$perm} = 'y';
        $smarty->assign($perm, 'y');
    }
} else {
    $perms = $userlib->get_user_detailled_permissions($user);
    foreach ($perms as $perm) {
        $smarty->assign($perm['permName'], 'y');
        ${$perm}['permName'] = 'y';
        if ($perm['admin'] == 'y') {
            // assign all perms of the perm type
            $ps = $userlib->get_permissions(0, -1, 'permName_desc', '', $perm['type']);
            foreach ($ps['data'] as $perm) {