diff --git a/skolehjem/app/Helpers/Detector.php b/skolehjem/app/Helpers/Detector.php index 6b9481d..7c6312a 100644 --- a/skolehjem/app/Helpers/Detector.php +++ b/skolehjem/app/Helpers/Detector.php @@ -3,9 +3,7 @@ namespace App\Helpers; - - - +use Illuminate\Support\Facades\Auth; use Jenssegers\Agent\Agent; class Detector @@ -16,7 +14,13 @@ class Detector if($agent->isMobile()) { return view(config("detector.mobilePath") . "." . $viewName, $args); + } else if(Auth()->user() !== null) { + if (Auth()->user()->can('admin.panel.show') == true) + return view(config("detector.defaultPath") . "." . $viewName, $args); } - return view(config("detector.defaultPath") . "." . $viewName, $args); + if($viewName == "users.login" || $viewName == "users.logout") + return view(config("detector.mobilePath") . "." . $viewName, $args); + + return view("errors.403", $args); } } diff --git a/skolehjem/app/Http/Controllers/RootController.php b/skolehjem/app/Http/Controllers/RootController.php index 76670a6..d34cb52 100644 --- a/skolehjem/app/Http/Controllers/RootController.php +++ b/skolehjem/app/Http/Controllers/RootController.php @@ -19,16 +19,16 @@ class RootController extends Controller if(auth()->user()->can('admin.panel.show')) { if(Response::detect("root.index")->name() == "admin.root.index") - return Response::detect("root.index"); + return view("admin.root.index"); else { $news = News::query()->orderBy('id', 'desc')->paginate($perPage); - return Response::detect("root.index", ["news" => $news]); + return view("app.root.index", ["news" => $news]); } } else { $news = News::query()->orderBy('id', 'desc')->paginate($perPage, ['*'], "page"); - return view('app.root.index', ["news" => $news]); + return Response::detect('root.index', ["news" => $news]); } } } diff --git a/skolehjem/app/Providers/DetectorServiceProvider.php b/skolehjem/app/Providers/DetectorServiceProvider.php index c34f089..93a05fc 100644 --- a/skolehjem/app/Providers/DetectorServiceProvider.php +++ b/skolehjem/app/Providers/DetectorServiceProvider.php @@ -3,6 +3,7 @@ namespace App\Providers; use Illuminate\Http\Response; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\ServiceProvider; use Jenssegers\Agent\Facades\Agent; @@ -28,8 +29,14 @@ class DetectorServiceProvider extends ServiceProvider Response::macro("detect", function ($view, $args = []) { if(Agent::isMobile()) { return view(config("detector.mobilePath") . "." . $view, $args); + } else if(Auth()->user() !== null){ + if(Auth()->user()->can('admin.panel.show') == true) + return view(config("detector.defaultPath") . "." . $view, $args); } - return view(config("detector.defaultPath") . "." . $view, $args); + if($view == "users.login" || $view == "users.logout") + return view(config("detector.mobilePath") . "." . $view, $args); + + return view("errors.403", $args); }); } } diff --git a/skolehjem/resources/lang/dk/msg.php b/skolehjem/resources/lang/dk/msg.php index 1cb10fb..56023e0 100644 --- a/skolehjem/resources/lang/dk/msg.php +++ b/skolehjem/resources/lang/dk/msg.php @@ -63,6 +63,7 @@ return[ "infoomappen" => "Denne app er udviklet til Odense erhvervskollegie.", "error" => "Fejl", "404" => "Denne side findes ikke.", + "403" => "Du har ikke rettigheder til denne side.", "canceled" => "Aflyst" diff --git a/skolehjem/resources/lang/en/msg.php b/skolehjem/resources/lang/en/msg.php index 587823e..87ebfc8 100644 --- a/skolehjem/resources/lang/en/msg.php +++ b/skolehjem/resources/lang/en/msg.php @@ -70,5 +70,6 @@ return[ "infoomappen" => "The app is developed and designed for 'Odense erhvervskollegie'.", "error" => "Error", "404" => "This page doesn't exist.", + "403" => "You don't have permissions to access this page.", "canceled" => "Canceled" ]; diff --git a/skolehjem/resources/views/errors/403.blade.php b/skolehjem/resources/views/errors/403.blade.php new file mode 100644 index 0000000..cd86941 --- /dev/null +++ b/skolehjem/resources/views/errors/403.blade.php @@ -0,0 +1,78 @@ + + + + @yield("title") + + @if(request()->cookie("mode") == "dark") + + @else + + @endif + + + + + +
+

{{__("msg.error")}}

+

{{__("msg.403")}}

+
+ + +@if(request()->cookie("mode") == "dark") + +@endif +@yield("scripts") + + +