![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/soundstudiopro.com/private_html/includes/ |
<?php
if (!function_exists('ensureEventManagersTable')) {
function ensureEventManagersTable(PDO $pdo): void
{
static $ensured = false;
if ($ensured) {
return;
}
$pdo->exec("
CREATE TABLE IF NOT EXISTS event_managers (
id INT AUTO_INCREMENT PRIMARY KEY,
event_id INT NOT NULL,
user_id INT NOT NULL,
role VARCHAR(50) DEFAULT 'staff',
status VARCHAR(20) DEFAULT 'active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY unique_manager (event_id, user_id),
FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
");
$ensured = true;
}
}
if (!function_exists('userCanManageEvent')) {
function userCanManageEvent(PDO $pdo, ?int $userId, int $eventId): bool
{
if (!$userId || !$eventId) {
return false;
}
ensureEventManagersTable($pdo);
if (!empty($_SESSION['is_admin'])) {
return true;
}
$stmt = $pdo->prepare("SELECT creator_id FROM events WHERE id = ?");
$stmt->execute([$eventId]);
$creatorId = $stmt->fetchColumn();
if ($creatorId && (int)$creatorId === (int)$userId) {
return true;
}
$stmt = $pdo->prepare("
SELECT COUNT(*)
FROM event_managers
WHERE event_id = ?
AND user_id = ?
AND status = 'active'
");
$stmt->execute([$eventId, $userId]);
return $stmt->fetchColumn() > 0;
}
}