feat: added Sessionstart to header; changed navlinks in header; rework registration of services; created employee list with refund; created function for getting avatar and insert entry; changed data fetch for user; new style added
This commit is contained in:
50
callback.php
50
callback.php
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
session_start();
|
||||
$config = require 'config.php';
|
||||
require 'db.php'; // Stelle sicher, dass hier die $dbhandle-Verbindung aufgebaut wird
|
||||
|
||||
if (!isset($_GET['code'])) {
|
||||
die('Keine Autorisierungscode empfangen');
|
||||
@@ -50,7 +51,7 @@ if (isset($guild_member['message'])) {
|
||||
die('Du bist nicht auf dem Discord-Server.');
|
||||
}
|
||||
|
||||
// 🆕 Rollen-ID → Rollenname Mapping
|
||||
// Rollen-ID → Rollenname Mapping
|
||||
$role_names = [
|
||||
"1350944151381999666" => "Geschäftsführung",
|
||||
"1350944244843544709" => "Stv. Geschäftsführung",
|
||||
@@ -60,22 +61,12 @@ $role_names = [
|
||||
"1350945530519224320" => "Meister",
|
||||
"1350945581194809376" => "Tuner",
|
||||
"1350945688560861285" => "Stift"
|
||||
|
||||
];
|
||||
|
||||
// 🆕 Rollen-Rang (höchste zuerst)
|
||||
$role_order = [
|
||||
"1350944151381999666",
|
||||
"1350944244843544709",
|
||||
"1350943536891297914",
|
||||
"1350945302395224206",
|
||||
"1350945473338544138",
|
||||
"1350945530519224320",
|
||||
"1350945581194809376",
|
||||
"1350945688560861285"
|
||||
];
|
||||
// Rollen-Rang (höchste zuerst)
|
||||
$role_order = array_keys($role_names);
|
||||
|
||||
// 🆕 Höchste Rolle finden
|
||||
// Höchste Rolle finden
|
||||
$main_role_name = "Mitglied"; // Fallback
|
||||
foreach ($role_order as $role_id) {
|
||||
if (in_array($role_id, $guild_member['roles'])) {
|
||||
@@ -87,15 +78,40 @@ foreach ($role_order as $role_id) {
|
||||
// Rollen prüfen (ob die Person die „Adminrolle“ hat)
|
||||
$hasRole = in_array($config['role_id'], $guild_member['roles']);
|
||||
|
||||
// Server-Nickname oder globalen Username nehmen
|
||||
$nickname = $guild_member['nick'] ?? $user['username'];
|
||||
|
||||
// ✅ Prüfen ob User schon in der Datenbank existiert
|
||||
$stmt = $dbhandle->prepare("SELECT id FROM users WHERE discord_id = ?");
|
||||
$stmt->bind_param("s", $user['id']);
|
||||
$stmt->execute();
|
||||
$stmt->store_result();
|
||||
|
||||
if ($stmt->num_rows > 0) {
|
||||
// User existiert → hole interne User-ID
|
||||
$stmt->bind_result($user_id);
|
||||
$stmt->fetch();
|
||||
} else {
|
||||
// User existiert nicht → neuen Eintrag erstellen
|
||||
$insert = $dbhandle->prepare("INSERT INTO users (discord_id, discord_name) VALUES (?, ?)");
|
||||
$insert->bind_param("ss", $user['id'], $nickname);
|
||||
$insert->execute();
|
||||
$user_id = $insert->insert_id;
|
||||
$insert->close();
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
|
||||
// Session setzen
|
||||
$_SESSION['user'] = [
|
||||
'id' => $user['id'],
|
||||
'id' => $user_id, // interne DB-ID
|
||||
'discord_id' => $user['id'],
|
||||
'username' => $user['username'],
|
||||
'discriminator' => $user['discriminator'],
|
||||
'avatar' => $user['avatar'],
|
||||
'hasRole' => $hasRole,
|
||||
'nickname' => $guild_member['nick'] ?? $user['username'], // Nick wenn vorhanden
|
||||
'main_role' => $main_role_name // 🆕 höchster Rollenname
|
||||
'nickname' => $nickname, // Server-Nickname
|
||||
'main_role' => $main_role_name
|
||||
];
|
||||
|
||||
header('Location: index.php');
|
||||
|
||||
Reference in New Issue
Block a user