From 489361bc5346af1a25542508fbdee4db16781aa1 Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Tue, 18 Apr 2023 12:43:39 +0200 Subject: [PATCH 1/2] restrict settings to the user's role #6 --- .../Requests/Bo/Settings/UpdateSettingRequest.php | 12 +++++++++++- .../views/bo/pages/settings/index-list.blade.php | 12 +++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/Http/Requests/Bo/Settings/UpdateSettingRequest.php b/app/Http/Requests/Bo/Settings/UpdateSettingRequest.php index 1d0d027..0c3e52d 100644 --- a/app/Http/Requests/Bo/Settings/UpdateSettingRequest.php +++ b/app/Http/Requests/Bo/Settings/UpdateSettingRequest.php @@ -4,6 +4,7 @@ namespace App\Http\Requests\Bo\Settings; use App\Traits\Requests\HasPicture; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Support\Facades\Auth; class UpdateSettingRequest extends FormRequest { @@ -16,7 +17,16 @@ class UpdateSettingRequest extends FormRequest */ public function authorize() { - return auth('backend')->check(); + if ( + $this->key === "Button1" || + $this->key === "Button2" || + $this->key === "Button3" || + $this->key === "ShowIsActive" + ) { + return auth('backend')->check(); + } else { + return (auth('backend')->check() && Auth::user()->role === 1); + } } /** diff --git a/resources/views/bo/pages/settings/index-list.blade.php b/resources/views/bo/pages/settings/index-list.blade.php index 5a247ec..49dbcab 100644 --- a/resources/views/bo/pages/settings/index-list.blade.php +++ b/resources/views/bo/pages/settings/index-list.blade.php @@ -16,6 +16,13 @@ @if ($settings->count()) @foreach ($settings as $settingModel) + @if ( + Auth::user()->role === 1 || + $settingModel->key === "Button1" || + $settingModel->key === "Button2" || + $settingModel->key === "Button3" || + $settingModel->key === "ShowIsActive" + ) {{ $settingModel->key }} @@ -52,7 +59,9 @@ @break @case(\App\Enums\SettingTypesEnum::directory()) - @@ -38,6 +46,7 @@ diff --git a/resources/views/bo/modules/table-col-sorter.blade.php b/resources/views/bo/modules/table-col-sorter.blade.php index 3a6c99f..0e9c6b9 100644 --- a/resources/views/bo/modules/table-col-sorter.blade.php +++ b/resources/views/bo/modules/table-col-sorter.blade.php @@ -13,13 +13,13 @@ $ignore = (isset($ignore) and is_array($ignore)) ? $ignore : []; {{-- NO Sort for order column --}} @if($col === 'order' or in_array($col, $ignore)) @if(!$noOrder or $rst) - + {{ $colname }} @endif @continue @endif - + {{ $colname }} @@ -51,7 +51,7 @@ $ignore = (isset($ignore) and is_array($ignore)) ? $ignore : []; @if($noOrder and !$rst) diff --git a/resources/views/bo/pages/app-users/create.blade.php b/resources/views/bo/pages/app-users/create.blade.php index 330c9bb..77f68e2 100644 --- a/resources/views/bo/pages/app-users/create.blade.php +++ b/resources/views/bo/pages/app-users/create.blade.php @@ -33,9 +33,8 @@
-
+ @csrf - @method('PUT') @include('bo.pages.app-users.form')
diff --git a/resources/views/bo/pages/app-users/edit.blade.php b/resources/views/bo/pages/app-users/edit.blade.php index 6215128..003e1a1 100644 --- a/resources/views/bo/pages/app-users/edit.blade.php +++ b/resources/views/bo/pages/app-users/edit.blade.php @@ -44,7 +44,7 @@
- + @csrf @method('PUT') @include('bo.pages.app-users.form', ['model' => $app_userModel]) diff --git a/resources/views/bo/pages/app-users/index-list.blade.php b/resources/views/bo/pages/app-users/index-list.blade.php index 984d069..ccb5291 100644 --- a/resources/views/bo/pages/app-users/index-list.blade.php +++ b/resources/views/bo/pages/app-users/index-list.blade.php @@ -20,21 +20,21 @@ {{ $app_usersModel->lastname }} - + {{ $app_usersModel->firstname }} - + {{ $app_usersModel->email }} @if(!$noOrder or $rst) - + @csrf @@ -45,7 +45,7 @@ @csrf @@ -79,7 +79,7 @@ @endforeach @else - + {{ __('Aucun résultat pour les :models', ['models' => __('models.classes.users')]) }} diff --git a/resources/views/bo/pages/app-users/index.blade.php b/resources/views/bo/pages/app-users/index.blade.php index e643867..2574e81 100644 --- a/resources/views/bo/pages/app-users/index.blade.php +++ b/resources/views/bo/pages/app-users/index.blade.php @@ -19,9 +19,13 @@ action="{{ route('bo.app-users.import') }}" method="POST" enctype="multipart/form-data"> - + @csrf - @@ -38,18 +42,13 @@
@include('bo.modules.search-bar') -
-
- {{ $app_users->withQueryString()->onEachSide(1)->links() }} -
-
-
+
@include('bo.pages.app-users.index-list')
-
+
{{ $app_users->withQueryString()->onEachSide(1)->links() }}
diff --git a/resources/views/bo/pages/dashboard.blade.php b/resources/views/bo/pages/dashboard.blade.php index b7546b7..80433b3 100644 --- a/resources/views/bo/pages/dashboard.blade.php +++ b/resources/views/bo/pages/dashboard.blade.php @@ -5,11 +5,42 @@ @section('breadcrumb', 'no') @section('content') -
-
-
+ @csrf @method('PUT') @include('bo.pages.directories.form', ['model' => $directoryModel]) diff --git a/resources/views/bo/pages/directories/form.blade.php b/resources/views/bo/pages/directories/form.blade.php index afe1ee2..5f68050 100644 --- a/resources/views/bo/pages/directories/form.blade.php +++ b/resources/views/bo/pages/directories/form.blade.php @@ -10,7 +10,7 @@ 'label' => __('Nom du :model en français', ['model' => Str::singular(__('models.classes.directories'))]), 'hasWordCounter' => true, 'name' => 'name[fr]', - 'value' => $directoryModel->name['fr'], + 'value' => $directoryModel->name['fr'] ?? "", 'required' => true, 'model' => $directoryModel ?? null, 'helper' => __('Doit posséder 3 caractères minimum, 255 maximum.'), @@ -31,7 +31,7 @@ 'label' => __('Nom du :model en anglais', ['model' => Str::singular(__('models.classes.directories'))]), 'hasWordCounter' => true, 'name' => 'name[en]', - 'value' => $directoryModel->name['en'], + 'value' => $directoryModel->name['en'] ?? "", 'required' => true, 'model' => $directoryModel ?? null, 'helper' => __('Doit posséder 3 caractères minimum, 255 maximum.'), @@ -52,7 +52,7 @@ 'label' => __('Nom du :model en allemand', ['model' => Str::singular(__('models.classes.directories'))]), 'hasWordCounter' => true, 'name' => 'name[de]', - 'value' => $directoryModel->name['de'], + 'value' => $directoryModel->name['de'] ?? "", 'required' => true, 'model' => $directoryModel ?? null, 'helper' => __('Doit posséder 3 caractères minimum, 255 maximum.'), @@ -73,7 +73,7 @@ 'label' => __('Nom du :model en néerlandais', ['model' => Str::singular(__('models.classes.directories'))]), 'hasWordCounter' => true, 'name' => 'name[nl]', - 'value' => $directoryModel->name['nl'], + 'value' => $directoryModel->name['nl'] ?? "", 'required' => true, 'model' => $directoryModel ?? null, 'helper' => __('Doit posséder 3 caractères minimum, 255 maximum.'), diff --git a/resources/views/bo/pages/directories/index.blade.php b/resources/views/bo/pages/directories/index.blade.php index 5ffaa37..cb8e1e0 100644 --- a/resources/views/bo/pages/directories/index.blade.php +++ b/resources/views/bo/pages/directories/index.blade.php @@ -20,14 +20,12 @@
+ method="POST"> @csrf - @method('PUT')
@include('modules.input-error', [ - 'inputName' => "name", + 'inputName' => "name.fr", 'helperId' => 'directoryNameHelp', 'helper' => __('Doit posséder 3 caractères minimum, 255 maximum.'), ]) diff --git a/resources/views/bo/pages/documents/create.blade.php b/resources/views/bo/pages/documents/create.blade.php index d007db5..d4a2938 100644 --- a/resources/views/bo/pages/documents/create.blade.php +++ b/resources/views/bo/pages/documents/create.blade.php @@ -33,7 +33,7 @@
- + @csrf @method('PUT') @include('bo.pages.documents.form') diff --git a/resources/views/bo/pages/documents/edit.blade.php b/resources/views/bo/pages/documents/edit.blade.php index 92ffd4e..ae1b114 100644 --- a/resources/views/bo/pages/documents/edit.blade.php +++ b/resources/views/bo/pages/documents/edit.blade.php @@ -27,7 +27,7 @@ @method('DELETE') @csrf
- + @csrf @method('PUT') @include('bo.pages.documents.form', ['model' => $documentModel]) diff --git a/resources/views/bo/pages/documents/form.blade.php b/resources/views/bo/pages/documents/form.blade.php index 2b207e5..678b637 100644 --- a/resources/views/bo/pages/documents/form.blade.php +++ b/resources/views/bo/pages/documents/form.blade.php @@ -16,6 +16,43 @@
+ {{-- TAGS --}} +
+
+ {{ __('Étiquettes') }} +
+
+ @include('bo.partials.inputs.pivot-belongs-to-many', [ + 'id' => 'app_userAuthorizedFolders', + 'name' => 'tags', + 'label' => __('Étiquettes associées'), + 'model' => $documentModel ?? null, + 'itemsList' => $tags, + 'itemLimit' => [0,5], + 'placeholder' => __('Recherchez une étiquette'), + 'helper' => __('Sélectionner des étiquettes parmis la liste (0 minimum et 5 maximum).'), + ]) +
+
+
+
+ {{-- STATUS --}} +
+
+ {{ __('Publication') }} +
+
+ @include('bo.partials.inputs.boolean-switch', [ + 'id' => 'documentStatus', + 'name' => 'status', + 'label' => __('État de publication'), + 'model' => $documentModel ?? null, + 'helper' => __('Le document est publié ou non.') + ]) +
+
+
+
@push('scripts') diff --git a/resources/views/bo/pages/documents/index-list.blade.php b/resources/views/bo/pages/documents/index-list.blade.php index b875036..5ac1861 100644 --- a/resources/views/bo/pages/documents/index-list.blade.php +++ b/resources/views/bo/pages/documents/index-list.blade.php @@ -4,59 +4,85 @@ @php $rst = !is_null(request()->rst); $routeName = request()->route()->getName(); - $noOrder = Session::get("$routeName.sort_col") !== 'order' and (Session::has("$routeName.sort_col") or Session::has("$routeName.sort_way")); $noOrder = Session::get("$routeName.sort_col") !== '' and (Session::has("$routeName.sort_col") or Session::has("$routeName.sort_way")); - $cols = ['title' => __('Title'), 'directory_id' => __('Dossier'), 'order' => __('Order')]; + $cols = ['title' => __('Title'), 'directory_id' => __('Dossier'), 'document_id' => __('Document'), 'type' => __('Type'), 'order' => __('Order')]; @endphp @include('bo.modules.table-col-sorter', [ 'cols' => $cols, - 'mobileHide' => [], + 'mobileHide' => [] ]) @if ($documents->count()) @foreach ($documents as $documentModel) - + {{ $documentModel->title }} - - @if(!$documentModel->directory->is_system) + + @if(isset($documentModel->directory->is_system) && !$documentModel->directory->is_system) @endif + + @if(isset($documentModel->document_id)) + + + + @endif + + + @switch($documentModel->type) + @case("mp4") + + + + @break + @case("pdf") + + + + @break + @endswitch + @if(!$noOrder or $rst) - -
- - @csrf - - - -
+ + + @endif @@ -65,7 +91,7 @@ @method('DELETE') @csrf
@include('bo.modules.search-bar') -
-
- {{ $documents->withQueryString()->onEachSide(1)->links() }} -
-
-
+
@include('bo.pages.documents.index-list')
-
+
{{ $documents->withQueryString()->onEachSide(1)->links() }}
diff --git a/resources/views/bo/pages/settings/index-list.blade.php b/resources/views/bo/pages/settings/index-list.blade.php index 49dbcab..725e0fd 100644 --- a/resources/views/bo/pages/settings/index-list.blade.php +++ b/resources/views/bo/pages/settings/index-list.blade.php @@ -58,6 +58,7 @@ ]) @break @case(\App\Enums\SettingTypesEnum::directory()) + @if ($settingModel->value != null)
-
-
- {{ $settings->withQueryString()->onEachSide(1)->links() }} -
-
@endsection diff --git a/resources/views/bo/pages/tags/create.blade.php b/resources/views/bo/pages/tags/create.blade.php new file mode 100644 index 0000000..88cc768 --- /dev/null +++ b/resources/views/bo/pages/tags/create.blade.php @@ -0,0 +1,53 @@ +@extends('bo.layout') + +@section('title', sprintf('%s - %s', Str::singular(__('models.classes.tags')), Str::ucfirst(__('création')))) +@section('description', __('Page de création d\'un nouveau tag de l\'application.')) + +@section('breadcrumb', request()->route()->getName()) + +@section('content') +
+
+
+
+

+ + + + {{ Str::singular(__('models.classes.tags')) }} {{ Str::ucfirst(__('création')) }} +

+
+
+ +
+
+
+
+
+ @csrf + @include('bo.pages.tags.form') +
+
+ +
+
+
+
+
+@endsection diff --git a/resources/views/bo/pages/tags/edit.blade.php b/resources/views/bo/pages/tags/edit.blade.php new file mode 100644 index 0000000..54322fc --- /dev/null +++ b/resources/views/bo/pages/tags/edit.blade.php @@ -0,0 +1,65 @@ +@extends('bo.layout', ['brParam' => $tagModel]) + +@section('title', sprintf('%s - %s %s', Str::singular(__('models.classes.tags')), Str::ucfirst(__('édition')), $tagModel->title)) +@section('description', __('Page d\'édition d\'un tag de l\'application.')) + +@section('breadcrumb', request()->route()->getName()) + +@section('content') +
+
+
+
+

+ + + + {{ Str::singular(__('models.classes.tags')) }} {{ Str::ucfirst(__('édition')) }} +

+
+
+
+ @method('DELETE') + @csrf +
+ + +
+
+
+
+
+
+
+ @csrf + @method('PUT') + @include('bo.pages.tags.form', ['model' => $tagModel]) +
+
+ +
+
+
+
+
+@endsection diff --git a/resources/views/bo/pages/tags/form.blade.php b/resources/views/bo/pages/tags/form.blade.php new file mode 100644 index 0000000..6dd6ec9 --- /dev/null +++ b/resources/views/bo/pages/tags/form.blade.php @@ -0,0 +1,36 @@ +
+ {{-- NAME --}} +
+
+ {{ __('Nom') }} +
+
+ @include('bo.partials.inputs.varchar', [ + 'id' => 'tagName', + 'label' => __('Nom de l\':model', ['model' => Str::singular(__('models.classes.tags'))]), + 'hasWordCounter' => true, + 'name' => 'name', + 'required' => true, + 'model' => $tagModel ?? null, + 'helper' => __('Doit posséder 3 caractères minimum, 255 maximum.'), + 'placeholder' => "Un beau nom" + ]) +
+
+
+
+
+ +@push('scripts') + +@endpush diff --git a/resources/views/bo/pages/tags/index-list.blade.php b/resources/views/bo/pages/tags/index-list.blade.php new file mode 100644 index 0000000..b6ada10 --- /dev/null +++ b/resources/views/bo/pages/tags/index-list.blade.php @@ -0,0 +1,84 @@ +
+ + + @php + $rst = !is_null(request()->rst); + $routeName = request()->route()->getName(); + $noOrder = Session::get("$routeName.sort_col") !== '' and (Session::has("$routeName.sort_col") or Session::has("$routeName.sort_way")); + $cols = ['name' => __('Nom'), 'order' => __('Order')]; + @endphp + @include('bo.modules.table-col-sorter', [ + 'cols' => $cols, + 'mobileHide' => [], + ]) + + + @if ($tags->count()) + @foreach ($tags as $tagModel) + + + @if(!$noOrder or $rst) + + @endif + + + @endforeach + @else + + + + @endif + +
+ {{ $tagModel->name }} + + + + +
+
+ @method('DELETE') + @csrf +
+ + + + +
+
+
+
+ + {{ __('Aucun résultat pour les :models', ['models' => __('models.classes.tags')]) }} + +
+
diff --git a/resources/views/bo/pages/tags/index.blade.php b/resources/views/bo/pages/tags/index.blade.php new file mode 100644 index 0000000..0b948e4 --- /dev/null +++ b/resources/views/bo/pages/tags/index.blade.php @@ -0,0 +1,43 @@ +@extends('bo.layout') + +@section('title', sprintf('%s - %s', __('models.classes.tags'), Str::ucfirst(__('liste')))) +@section('description', __('Page de contôle sur tous les tags de l\'application.')) + +@section('breadcrumb', request()->route()->getName()) + +@section('content') +
+
+
+
+

+ {{ __('models.classes.tags') }} {{ Str::ucfirst(__('liste')) }} +

+
+
+
+ + + +
+
+
+
+
+ @include('bo.modules.search-bar') +
+
+ @include('bo.pages.tags.index-list') +
+
+
+
+ {{ $tags->withQueryString()->onEachSide(1)->links() }} +
+
+
+
+@endsection diff --git a/resources/views/bo/partials/inputs/bigint-foreign-id.blade.php b/resources/views/bo/partials/inputs/bigint-foreign-id.blade.php index a36d13b..3601a6d 100644 --- a/resources/views/bo/partials/inputs/bigint-foreign-id.blade.php +++ b/resources/views/bo/partials/inputs/bigint-foreign-id.blade.php @@ -2,14 +2,15 @@ @endif @include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{{ $id }}Help", + 'helperId' => $id . "Help", 'helper' => $helper ]) diff --git a/resources/views/bo/partials/inputs/pivot-belongs-to-many.blade.php b/resources/views/bo/partials/inputs/pivot-belongs-to-many.blade.php index 159094b..35c4698 100644 --- a/resources/views/bo/partials/inputs/pivot-belongs-to-many.blade.php +++ b/resources/views/bo/partials/inputs/pivot-belongs-to-many.blade.php @@ -7,8 +7,8 @@ $data = [ 'name' => $name, 'value' => old($name, $model->{$name} ?? []) ?? [], - 'placeholder' => $placeholder, - 'itemsList' => $itemsList, + 'placeholder' => $placeholder ?? "", + 'itemsList' => $itemsList ?? [], 'itemLimit' => $itemLimit ?? null, 'errors' => $errors->getBag('default')->getMessages() ?? [] ]; @@ -16,6 +16,6 @@ $data = [
@include('modules.input-error', [ 'inputName' => $name, - 'helperId' => "{$id}Help", + 'helperId' => $id . "Help", 'helper' => $helper, ]) diff --git a/resources/views/modules/breadcrumb/layout.blade.php b/resources/views/modules/breadcrumb/layout.blade.php index 09528c9..518003e 100644 --- a/resources/views/modules/breadcrumb/layout.blade.php +++ b/resources/views/modules/breadcrumb/layout.blade.php @@ -1,6 +1,6 @@ @if (isset($breadcrumbs)) @unless ($breadcrumbs->isEmpty()) -