59 lines
1.6 KiB
PHP
59 lines
1.6 KiB
PHP
<?php
|
|
require_once '../../includes/config.php';
|
|
require_once '../../includes/auth.php';
|
|
require_once '../../includes/stories.php';
|
|
|
|
// Vérification de l'authentification
|
|
if (!Auth::check()) {
|
|
http_response_code(401);
|
|
exit(json_encode(['success' => false, 'error' => 'Non autorisé']));
|
|
}
|
|
|
|
// Seul un administrateur peut modifier les autorisations d'accès
|
|
if (!Auth::isAdmin() && !Auth::hasAdminRole()) {
|
|
http_response_code(403);
|
|
exit(json_encode(['success' => false, 'error' => 'Accès refusé']));
|
|
}
|
|
|
|
// Vérification de la méthode HTTP
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
http_response_code(405);
|
|
exit(json_encode(['success' => false, 'error' => 'Méthode non autorisée']));
|
|
}
|
|
|
|
// Récupération et validation des données
|
|
$input = json_decode(file_get_contents('php://input'), true);
|
|
$storyId = $input['storyId'] ?? null;
|
|
$access = $input['access'] ?? [];
|
|
|
|
if (!$storyId) {
|
|
http_response_code(400);
|
|
exit(json_encode(['success' => false, 'error' => 'ID du roman manquant']));
|
|
}
|
|
|
|
try {
|
|
// Récupération du roman
|
|
$story = Stories::get($storyId);
|
|
if (!$story) {
|
|
throw new Exception('Roman non trouvé');
|
|
}
|
|
|
|
// Mise à jour de la liste d'accès
|
|
$story['access'] = $access;
|
|
|
|
// Sauvegarde des modifications
|
|
Stories::save($story);
|
|
|
|
// Réponse de succès
|
|
echo json_encode([
|
|
'success' => true,
|
|
'message' => 'Autorisations d\'accès mises à jour avec succès'
|
|
]);
|
|
|
|
} catch (Exception $e) {
|
|
http_response_code(500);
|
|
echo json_encode([
|
|
'success' => false,
|
|
'error' => 'Erreur : ' . $e->getMessage()
|
|
]);
|
|
} |