From 8f92441253c62eaf0a985362f884fdf7aa0e05cb Mon Sep 17 00:00:00 2001 From: soufiane Date: Tue, 12 Dec 2023 00:30:23 +0100 Subject: [PATCH] wip #6482 @4:00 --- .../FluidbookPublication/LinksOperation.php | 13 ++++--------- app/Http/Middleware/ClearRouteCache.php | 6 +++--- resources/linkeditor/js/linkeditor.js | 7 +++++-- .../fluidbook_publication/link_editor.blade.php | 9 ++++++--- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php index 86d95461f..0c6dd1789 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/LinksOperation.php @@ -289,23 +289,18 @@ trait LinksOperation } $token = Str::random(10); - cache(['token' => $token]); - return view('fluidbook_publication.link_editor', ['id' => $id, 'fluidbook' => FluidbookPublication::find($id), 'access' => ""]); + return view('fluidbook_publication.link_editor', ['id' => $id, 'fluidbook' => FluidbookPublication::find($id), 'access' => "", 'token' => $token]); } public function broadcast(Request $request) { $fluidbookId = $request->id; + $token = $request->token; $userId = backpack_user()->id; - $token = cache()->get('token'); - - //$key = $userId.'_'.$fluidbookId; - //Cache::forget('connexion'); + $connexionExist = cache()->get('connexion'.$fluidbookId); //cache()->forget('connexion'); - $connexionExist = cache()->get('connexion'); - if($connexionExist && $fluidbookId === $connexionExist['f_id']) { if($userId != $connexionExist['id'] || $token !== $connexionExist['token']) { return "unavailable"; @@ -313,7 +308,7 @@ trait LinksOperation return $connexionExist; } } else { - cache(['connexion' => ['token' => $token, 'id' => $userId, 'f_id' => $fluidbookId] ]); + cache(['connexion'.$fluidbookId => ['id' => $userId, 'token' => $token,'f_id' => $fluidbookId] ]); } } diff --git a/app/Http/Middleware/ClearRouteCache.php b/app/Http/Middleware/ClearRouteCache.php index 3dda2aae9..a2cd7510e 100644 --- a/app/Http/Middleware/ClearRouteCache.php +++ b/app/Http/Middleware/ClearRouteCache.php @@ -4,8 +4,8 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; +use Illuminate\Support\Str; use Symfony\Component\HttpFoundation\Response; -use Illuminate\Support\Facades\Cache; class ClearRouteCache { @@ -18,8 +18,8 @@ class ClearRouteCache { $response = $next($request); - // Supprimez le cache associé à la route - Cache::forget('token'); + $fluidbookId = $request->route('id'); + cache()->forget('connexion'.$fluidbookId); return $response; } diff --git a/resources/linkeditor/js/linkeditor.js b/resources/linkeditor/js/linkeditor.js index be2d72fcf..77bfe556d 100644 --- a/resources/linkeditor/js/linkeditor.js +++ b/resources/linkeditor/js/linkeditor.js @@ -586,13 +586,16 @@ $(function () { $.ajax({ method: "POST", url: '/fluidbook-publication/' + FLUIDBOOK_DATA.id + '/edit/links', - data: {id: FLUIDBOOK_DATA.id} + data: {id: FLUIDBOOK_DATA.id, token: $("[data-token]").data("token") } }).done(function (msg) { - console.log(msg) if(msg === "unavailable") { if($("#popup-overlay").find('.popup').length === 0) { + $("#popup-overlay").addClass("show") window.linkeditor.popup.open('unavailable'); } + } else { + $("#popup-overlay").removeClass("show") + window.linkeditor.popup.close(); } }); }, 5000) diff --git a/resources/views/fluidbook_publication/link_editor.blade.php b/resources/views/fluidbook_publication/link_editor.blade.php index 26fe9988e..8f01a8eea 100644 --- a/resources/views/fluidbook_publication/link_editor.blade.php +++ b/resources/views/fluidbook_publication/link_editor.blade.php @@ -128,13 +128,15 @@ 'both'=>__('Appliquer les mêmes dimensions à la sélection'), ]; - dump($access); + $connexionInfo = cache()->get('connexion'.$id); + $user = \App\Models\User::find($connexionInfo['id']); @endphp @extends('layouts.linkeditor') @section('content') @include('fluidbook_publication.link_editor_icons') -