From c56ffe1d1e15af7032b9a719a6dadcef9646111c Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Fri, 21 Jun 2024 01:11:36 +0200 Subject: [PATCH 01/14] fixed some rebase conflicts --- .env.example | 4 ++ app/Http/Controllers/ItemController.php | 63 +++++++++++++------ app/Http/Controllers/TagController.php | 9 ++- app/Item.php | 3 + config/app.php | 4 ++ .../2023_01_27_121000_add_role_to_item.php | 32 ++++++++++ lang/de/app.php | 1 + lang/en/app.php | 1 + resources/views/items/form.blade.php | 9 ++- resources/views/tags/form.blade.php | 22 ++++++- 10 files changed, 125 insertions(+), 23 deletions(-) create mode 100644 database/migrations/2023_01_27_121000_add_role_to_item.php diff --git a/.env.example b/.env.example index 33c168e8..3f7eb86c 100644 --- a/.env.example +++ b/.env.example @@ -48,3 +48,7 @@ PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" + +AUTH_ROLES_ENABLE=false +AUTH_ROLES_HEADER="remote-groups" +AUTH_ROLES_ADMIN="admin" diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php index 07521b31..bd252763 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -33,34 +33,59 @@ class ItemController extends Controller /** * Display a listing of the resource on the dashboard. */ - public function dash(): View + public function dash(Request $request): View { $treat_tags_as = \App\Setting::fetch('treat_tags_as'); $data["treat_tags_as"] = $treat_tags_as; - if ($treat_tags_as == 'categories') { - $data['categories'] = Item::whereHas('children')->with('children', function ($query) { - $query->pinned()->orderBy('order', 'asc'); - })->pinned()->orderBy('order', 'asc')->get(); + if (config('app.auth_roles_enable')) { + $roles = explode(',', $request->header(config('app.auth_roles_header'))); + if ($treat_tags_as == 'categories') { + $data['categories'] = Item::whereHas('children')->with('children', function ($query) { + $query->pinned()->orderBy('order', 'asc'); + })->pinned()->orderBy('order', 'asc')->get(); - } elseif ($treat_tags_as == 'tags') { - $data['apps'] = Item::with('parents')->where('type', 0)->pinned()->orderBy('order', 'asc')->get(); - $data['all_apps'] = Item::where('type', 0)->orderBy('order', 'asc')->get(); - $data['taglist'] = Item::where('id', 0)->orWhere(function($query) { - $query->where('type', 1)->pinned(); - })->orderBy('order', 'asc')->get(); + } elseif ($treat_tags_as == 'tags') { + $data['apps'] = Item::with('parents')->where('type', 0)->pinned()->orderBy('order', 'asc')->get(); + $data['all_apps'] = Item::where('type', 0)->orderBy('order', 'asc')->get(); + $data['taglist'] = Item::where('id', 0)->orWhere(function($query) { + $query->where('type', 1)->pinned(); + })->orderBy('order', 'asc')->get(); + } else { + + $data['apps'] = Item::whereHas('parents', function ($query) { + $query->where('id', 0); + })->whereIn('role', $roles)->orWhere('type', 1)->pinned()->orderBy('order', 'asc')->get(); + + $data['all_apps'] = Item::whereHas('parents', function ($query) { + $query->where('id', 0); + })->orWhere('type', 1)->orderBy('order', 'asc')->get(); + } } else { + if ($treat_tags_as == 'categories') { + $data['categories'] = Item::whereHas('children')->with('children', function ($query) { + $query->pinned()->orderBy('order', 'asc'); + })->pinned()->orderBy('order', 'asc')->get(); - $data['apps'] = Item::whereHas('parents', function ($query) { - $query->where('id', 0); - })->orWhere('type', 1)->pinned()->orderBy('order', 'asc')->get(); + } elseif ($treat_tags_as == 'tags') { + $data['apps'] = Item::with('parents')->where('type', 0)->pinned()->orderBy('order', 'asc')->get(); + $data['all_apps'] = Item::where('type', 0)->orderBy('order', 'asc')->get(); + $data['taglist'] = Item::where('id', 0)->orWhere(function($query) { + $query->where('type', 1)->pinned(); + })->orderBy('order', 'asc')->get(); + } else { - $data['all_apps'] = Item::whereHas('parents', function ($query) { - $query->where('id', 0); - })->orWhere(function ($query) { - $query->where('type', 1)->whereNot('id', 0); - })->orderBy('order', 'asc')->get(); + $data['apps'] = Item::whereHas('parents', function ($query) { + $query->where('id', 0); + })->orWhere('type', 1)->pinned()->orderBy('order', 'asc')->get(); + + $data['all_apps'] = Item::whereHas('parents', function ($query) { + $query->where('id', 0); + })->orWhere(function ($query) { + $query->where('type', 1)->whereNot('id', 0); + })->orderBy('order', 'asc')->get(); + } } //$data['all_apps'] = Item::doesntHave('parents')->get(); diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php index 79f7ad6e..8e32dd46 100644 --- a/app/Http/Controllers/TagController.php +++ b/app/Http/Controllers/TagController.php @@ -88,11 +88,16 @@ class TagController extends Controller * * @param $slug */ - public function show($slug): View + public function show($slug, Request $request): View { $item = Item::whereUrl($slug)->first(); //print_r($item); - $data['apps'] = $item->children()->pinned()->orderBy('order', 'asc')->get(); + if (config('app.auth_roles_enable')) { + $roles = explode(',', $request->header(config('app.auth_roles_header'))); + $data['apps'] = $item->children()->whereIn('role', $roles)->pinned()->orderBy('order', 'asc')->get(); + } else { + $data['apps'] = $item->children()->pinned()->orderBy('order', 'asc')->get(); + } $data['tag'] = $item->id; $data['all_apps'] = $item->children; diff --git a/app/Item.php b/app/Item.php index b0e83b4f..719e50e7 100644 --- a/app/Item.php +++ b/app/Item.php @@ -33,6 +33,7 @@ use Symfony\Component\ClassLoader\ClassMapGenerator; * @property string|null $class * @property string|null $appid * @property string|null $appdescription + * @property string|null $role * @property-read \Illuminate\Database\Eloquent\Collection|Item[] $children * @property-read int|null $children_count * @property-read string $droppable @@ -51,6 +52,7 @@ use Symfony\Component\ClassLoader\ClassMapGenerator; * @method static Builder|Item pinned() * @method static Builder|Item query() * @method static Builder|Item whereAppdescription($value) + * @method static Builder|Item whereRole($value) * @method static Builder|Item whereAppid($value) * @method static Builder|Item whereClass($value) * @method static Builder|Item whereColour($value) @@ -105,6 +107,7 @@ class Item extends Model 'user_id', 'tag_id', 'appid', + 'role', ]; diff --git a/config/app.php b/config/app.php index aff138a5..51f8860a 100644 --- a/config/app.php +++ b/config/app.php @@ -192,4 +192,8 @@ return [ 'Yaml' => Symfony\Component\Yaml\Yaml::class, ])->toArray(), + 'auth_roles_enable' => (bool) env('AUTH_ROLES_ENABLE', false), + 'auth_roles_header' => env('AUTH_ROLES_HEADER', 'remote-groups'), + 'auth_roles_admin' => env('AUTH_ROLES_ADMIN', 'admin'), + ]; diff --git a/database/migrations/2023_01_27_121000_add_role_to_item.php b/database/migrations/2023_01_27_121000_add_role_to_item.php new file mode 100644 index 00000000..1ab8d44f --- /dev/null +++ b/database/migrations/2023_01_27_121000_add_role_to_item.php @@ -0,0 +1,32 @@ +text('role')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('items', function (Blueprint $table) { + // + }); + } +} diff --git a/lang/de/app.php b/lang/de/app.php index c97d9874..6574c2fc 100644 --- a/lang/de/app.php +++ b/lang/de/app.php @@ -105,4 +105,5 @@ return array ( 'alert.success.user_restored' => 'Nutzer erfolgreich wiederhergestellt', 'dashboard.reorder' => 'Elemente neu anordnen und anheften', 'dashboard.settings' => 'Einstellungen', + 'role' => 'Authentifizierungsrolle', ); \ No newline at end of file diff --git a/lang/en/app.php b/lang/en/app.php index bfd97649..130c2307 100644 --- a/lang/en/app.php +++ b/lang/en/app.php @@ -114,4 +114,5 @@ return array ( 'alert.success.user_restored' => 'User restored successfully', 'dashboard.reorder' => 'Reorder and pin items', 'dashboard.settings' => 'Settings', + 'role' => 'Authentification role', ); \ No newline at end of file diff --git a/resources/views/items/form.blade.php b/resources/views/items/form.blade.php index 8d24a7f1..b7de5b3a 100644 --- a/resources/views/items/form.blade.php +++ b/resources/views/items/form.blade.php @@ -1,4 +1,4 @@ -
+
{{ __('app.apps.preview') }}
@@ -76,6 +76,13 @@ {!! Form::select('tags[]', $tags, $current_tags, ['class' => 'tags', 'multiple']) !!}
+ @if($app['config']->get('app.auth_roles_enable', false)) +
+ + {!! Form::text('role', $item->role ?? null, array('placeholder' => __('app.role'), 'id' => 'role', 'class' => 'form-control')) !!} +
+ @endif +
diff --git a/resources/views/tags/form.blade.php b/resources/views/tags/form.blade.php index 634632d0..40e0761f 100644 --- a/resources/views/tags/form.blade.php +++ b/resources/views/tags/form.blade.php @@ -1,4 +1,4 @@ -
+
{{ __('app.apps.add_tag') }}
@@ -30,6 +30,13 @@ {!! Form::text('colour', null, array('placeholder' => __('app.apps.hex'),'class' => 'form-control color-picker')) !!}
+ @if($app['config']->get('app.auth_roles_enable', false)) +
+ + {!! Form::text('role', $item->role ?? null, array('placeholder' => __('app.role'), 'id' => 'role', 'class' => 'form-control')) !!} +
+
+ @endif
@@ -51,6 +58,19 @@
+
+ + {!! Form::hidden('pinned', '0') !!} + +
From d146fed320d37602ffd3acda49c18cfb9ab7f04e Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Sun, 28 Jan 2024 14:25:15 +0100 Subject: [PATCH 02/14] hide switchuser when auth_role is used --- resources/views/layouts/app.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 4544748a..b8ab0533 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -82,7 +82,7 @@
@endif - @if($allusers->count() > 1) + @if(!($allusers->count() <= 1 || config('app.auth_roles_enable')))
@if($current_user->avatar) From 921631bdcdef9e43623475eedbcae0964392f8ac Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Fri, 21 Jun 2024 01:12:58 +0200 Subject: [PATCH 03/14] fixed some rebase conflicts --- app/Http/Controllers/ItemController.php | 2 +- app/Http/Controllers/TagController.php | 2 +- app/Providers/AppServiceProvider.php | 5 +++++ config/app.php | 2 ++ resources/views/layouts/app.blade.php | 4 ++-- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php index bd252763..8a2063c6 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -40,7 +40,7 @@ class ItemController extends Controller $data["treat_tags_as"] = $treat_tags_as; if (config('app.auth_roles_enable')) { - $roles = explode(',', $request->header(config('app.auth_roles_header'))); + $roles = explode(config('app.auth_roles_delimiter'), $request->header(config('app.auth_roles_header'))); if ($treat_tags_as == 'categories') { $data['categories'] = Item::whereHas('children')->with('children', function ($query) { $query->pinned()->orderBy('order', 'asc'); diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php index 8e32dd46..0a8fec52 100644 --- a/app/Http/Controllers/TagController.php +++ b/app/Http/Controllers/TagController.php @@ -93,7 +93,7 @@ class TagController extends Controller $item = Item::whereUrl($slug)->first(); //print_r($item); if (config('app.auth_roles_enable')) { - $roles = explode(',', $request->header(config('app.auth_roles_header'))); + $roles = explode(config('app.auth_roles_delimiter'), $request->header(config('app.auth_roles_header'))); $data['apps'] = $item->children()->whereIn('role', $roles)->pinned()->orderBy('order', 'asc')->get(); } else { $data['apps'] = $item->children()->pinned()->orderBy('order', 'asc')->get(); diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 5f9748aa..015d87bf 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -88,6 +88,11 @@ class AppServiceProvider extends ServiceProvider $view->with('trianglify_seed', $trianglify_seed); $view->with('allusers', $allusers); $view->with('current_user', $current_user); + if (config('app.auth_roles_enable')){ + $view->with('enable_config_buttons', in_array(config('app.auth_roles_admin'),explode(config('app.auth_roles_delimiter'), $_SERVER[config('app.auth_roles_http_header')]))); + } else { + $view->with('enable_config_buttons', true); + } }); $this->app['view']->addNamespace('SupportedApps', app_path('SupportedApps')); diff --git a/config/app.php b/config/app.php index 51f8860a..b4adda7d 100644 --- a/config/app.php +++ b/config/app.php @@ -194,6 +194,8 @@ return [ 'auth_roles_enable' => (bool) env('AUTH_ROLES_ENABLE', false), 'auth_roles_header' => env('AUTH_ROLES_HEADER', 'remote-groups'), + 'auth_roles_http_header' => env('AUTH_ROLES_HTTP_HEADER', 'HTTP_REMOTE_GROUPS'), 'auth_roles_admin' => env('AUTH_ROLES_ADMIN', 'admin'), + 'auth_roles_delimiter' => ',', ]; diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index b8ab0533..9de562f3 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -94,9 +94,8 @@
@endif @yield('content') + @if($enable_config_buttons)
- - @if(Route::is('dash') || Route::is('tags.show'))
{{ __('app.dashboard.reorder') }}
@@ -110,6 +109,7 @@
{{ __('app.apps.tag_list') }}
{{ __('app.dashboard.settings') }}
+ @endif From f7de56b7a758b3e3ab99fa5969a7e23832e3d84f Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Sun, 28 Jan 2024 19:42:28 +0100 Subject: [PATCH 04/14] added missing variable to example env --- .env.example | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.example b/.env.example index 3f7eb86c..abaf3c6a 100644 --- a/.env.example +++ b/.env.example @@ -51,4 +51,5 @@ MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" AUTH_ROLES_ENABLE=false AUTH_ROLES_HEADER="remote-groups" +AUTH_ROLES_HTTP_HEADER="HTTP_REMOTE_GROUPS" AUTH_ROLES_ADMIN="admin" From c08b0bfe39ed39e335f1db7323f21d6d923a768e Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Wed, 31 Jan 2024 15:53:18 +0100 Subject: [PATCH 05/14] changed naming of property --- app/Providers/AppServiceProvider.php | 4 ++-- resources/views/layouts/app.blade.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 015d87bf..730d8437 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -89,9 +89,9 @@ class AppServiceProvider extends ServiceProvider $view->with('allusers', $allusers); $view->with('current_user', $current_user); if (config('app.auth_roles_enable')){ - $view->with('enable_config_buttons', in_array(config('app.auth_roles_admin'),explode(config('app.auth_roles_delimiter'), $_SERVER[config('app.auth_roles_http_header')]))); + $view->with('enable_auth_admin_controles', in_array(config('app.auth_roles_admin'),explode(config('app.auth_roles_delimiter'), $_SERVER[config('app.auth_roles_http_header')]))); } else { - $view->with('enable_config_buttons', true); + $view->with('enable_auth_admin_controles', true); } }); diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 9de562f3..6f9dd24e 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -94,7 +94,7 @@ @endif @yield('content') - @if($enable_config_buttons) + @if($enable_auth_admin_controles)
@if(Route::is('dash') || Route::is('tags.show'))
{{ __('app.dashboard.reorder') }}
From 808c41acd66dcad905857defe0f024ed0522ff74 Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Wed, 31 Jan 2024 18:05:04 +0100 Subject: [PATCH 06/14] disabled users, items, tags for non admin users and user and login forms for all users --- lang/de/app.php | 2 ++ lang/en/app.php | 2 ++ resources/views/auth/login.blade.php | 11 +++++++++++ resources/views/items/form.blade.php | 8 ++++++++ resources/views/items/import.blade.php | 8 ++++++++ resources/views/items/list.blade.php | 8 ++++++++ resources/views/layouts/app.blade.php | 2 +- resources/views/settings/form.blade.php | 10 +++++++++- resources/views/settings/list.blade.php | 10 ++++++++++ resources/views/tags/form.blade.php | 11 ++++++++--- resources/views/tags/list.blade.php | 10 ++++++++-- resources/views/users/form.blade.php | 11 ++++++++--- resources/views/users/index.blade.php | 10 ++++++++-- resources/views/userselect.blade.php | 11 ++++++++++- 14 files changed, 101 insertions(+), 13 deletions(-) diff --git a/lang/de/app.php b/lang/de/app.php index 6574c2fc..62795aff 100644 --- a/lang/de/app.php +++ b/lang/de/app.php @@ -106,4 +106,6 @@ return array ( 'dashboard.reorder' => 'Elemente neu anordnen und anheften', 'dashboard.settings' => 'Einstellungen', 'role' => 'Authentifizierungsrolle', + 'unauthorized_for_form' => 'Sie haben keinen Zugriff auf diese Seite.', + 'diabled_feature' => 'Diese Funktion ist deaktiviert.', ); \ No newline at end of file diff --git a/lang/en/app.php b/lang/en/app.php index 130c2307..2941edb8 100644 --- a/lang/en/app.php +++ b/lang/en/app.php @@ -115,4 +115,6 @@ return array ( 'dashboard.reorder' => 'Reorder and pin items', 'dashboard.settings' => 'Settings', 'role' => 'Authentification role', + 'unauthorized_for_form' => 'You are not authorised to view this form.', + 'diabled_feature' => 'This feature is disabled.', ); \ No newline at end of file diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index b6a4d065..7247d4ce 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -1,6 +1,8 @@ @extends('layouts.app') + @section('content') +@if(!$app['config']->get('app.auth_roles_enable', false)) @@ -21,5 +23,14 @@ $user = \App\User::currentUser();
+@else +
+
+
+ {{ __('app.diabled_feature') }} +
+
+
+@endif @endsection diff --git a/resources/views/items/form.blade.php b/resources/views/items/form.blade.php index b7de5b3a..d39687ab 100644 --- a/resources/views/items/form.blade.php +++ b/resources/views/items/form.blade.php @@ -1,4 +1,5 @@
+ @if($enable_auth_admin_controles)
{{ __('app.apps.preview') }}
@@ -144,6 +145,13 @@ {{ __('app.buttons.cancel') }}
+ @else +
+
+ {{ __('app.unauthorized_for_form') }} +
+
+ @endif
diff --git a/resources/views/items/import.blade.php b/resources/views/items/import.blade.php index 5e30d2c8..cda7c7b2 100644 --- a/resources/views/items/import.blade.php +++ b/resources/views/items/import.blade.php @@ -3,6 +3,7 @@ @section('content')
+ @if($enable_auth_admin_controles)
{{ __('app.import') }}
@@ -31,6 +32,13 @@ {{ __('app.buttons.cancel') }}
+ @else +
+
+ {{ __('app.unauthorized_for_form') }} +
+
+ @endif
diff --git a/resources/views/items/list.blade.php b/resources/views/items/list.blade.php index db7a11a8..b38ca421 100644 --- a/resources/views/items/list.blade.php +++ b/resources/views/items/list.blade.php @@ -2,6 +2,7 @@ @section('content')
+ @if($enable_auth_admin_controles)
{{ __('app.apps.app_list') }} @@ -53,6 +54,13 @@ + @else +
+
+ {{ __('app.unauthorized_for_form') }} +
+
+ @endif
diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 6f9dd24e..be67e0a5 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -102,7 +102,7 @@ @endif
{{ __('app.dashboard') }}
- @if($current_user->id === 1) + @if($current_user->id === 1 && !config('app.auth_roles_enable'))
{{ __('app.user.user_list') }}
@endif
{{ __('app.apps.app_list') }}
diff --git a/resources/views/settings/form.blade.php b/resources/views/settings/form.blade.php index 1ffacce1..c9c3029e 100644 --- a/resources/views/settings/form.blade.php +++ b/resources/views/settings/form.blade.php @@ -1,4 +1,5 @@
+@if($enable_auth_admin_controles)
{{ __($setting->label) }}
@@ -26,5 +27,12 @@ {{ __('app.buttons.cancel') }}
+ @else +
+
+ {{ __('app.unauthorized_for_form') }} +
+
+ @endif -
+
diff --git a/resources/views/settings/list.blade.php b/resources/views/settings/list.blade.php index 923b65a5..a7212edf 100644 --- a/resources/views/settings/list.blade.php +++ b/resources/views/settings/list.blade.php @@ -2,6 +2,7 @@ @section('content') + @if($enable_auth_admin_controles) @foreach ($groups as $index => $group)
@@ -57,5 +58,14 @@
@endforeach + @else +
+
+
+ {{ __('app.unauthorized_for_form') }} +
+
+
+ @endif @endsection diff --git a/resources/views/tags/form.blade.php b/resources/views/tags/form.blade.php index 40e0761f..2da7b707 100644 --- a/resources/views/tags/form.blade.php +++ b/resources/views/tags/form.blade.php @@ -1,4 +1,5 @@
+ @if($enable_auth_admin_controles)
{{ __('app.apps.add_tag') }}
@@ -82,7 +83,11 @@ {{ __('app.buttons.cancel') }}
- + @else +
+
+ {{ __('app.unauthorized_for_form') }} +
+
+ @endif
- - diff --git a/resources/views/tags/list.blade.php b/resources/views/tags/list.blade.php index 7b1c8e1f..58f5a3f3 100644 --- a/resources/views/tags/list.blade.php +++ b/resources/views/tags/list.blade.php @@ -2,6 +2,7 @@ @section('content')
+ @if($enable_auth_admin_controles)
{{ __('app.apps.tag_list') }} @@ -50,7 +51,12 @@ + @else +
+
+ {{ __('app.unauthorized_for_form') }} +
+
+ @endif
- - @endsection diff --git a/resources/views/users/form.blade.php b/resources/views/users/form.blade.php index 45f3f866..31a8e3cc 100644 --- a/resources/views/users/form.blade.php +++ b/resources/views/users/form.blade.php @@ -1,4 +1,5 @@
+ @if($enable_auth_admin_controles)
{{ __('app.user.add_user') }}
@@ -91,7 +92,11 @@ {{ __('app.buttons.cancel') }}
- + @else +
+
+ {{ __('app.unauthorized_for_form') }} +
+
+ @endif
- - diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php index ce4887f2..1d485f5b 100644 --- a/resources/views/users/index.blade.php +++ b/resources/views/users/index.blade.php @@ -2,6 +2,7 @@ @section('content')
+ @if($enable_auth_admin_controles)
{{ __('app.user.user_list') }} @@ -60,7 +61,12 @@ + @else +
+
+ {{ __('app.unauthorized_for_form') }} +
+
+ @endif
- - @endsection \ No newline at end of file diff --git a/resources/views/userselect.blade.php b/resources/views/userselect.blade.php index 97f67db8..abcd673d 100644 --- a/resources/views/userselect.blade.php +++ b/resources/views/userselect.blade.php @@ -1,7 +1,7 @@ @extends('layouts.users') @section('content') - +@if(!$app['config']->get('app.auth_roles_enable', false))
@foreach($users as $user) @@ -14,5 +14,14 @@ @endforeach
+@else +
+
+
+ {{ __('app.diabled_feature') }} +
+
+
+@endif @endsection \ No newline at end of file From 041ec4236b4e21da2f48fc83cb23f59b5bebd666 Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Sun, 4 Feb 2024 18:18:53 +0100 Subject: [PATCH 07/14] updated supportedapps --- .vscode/launch.json | 15 +++++++++++++++ .vscode/tasks.json | 16 ++++++++++++++++ docker/docker-compose.yml | 26 ++++++++++++++++++++++++++ docker/nginx/Dockerfile | 2 ++ docker/nginx/default.conf | 19 +++++++++++++++++++ docker/php/Dockerfile | 4 ++++ xdebug.ini | 5 +++++ 7 files changed, 87 insertions(+) create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100644 docker/docker-compose.yml create mode 100644 docker/nginx/Dockerfile create mode 100644 docker/nginx/default.conf create mode 100644 docker/php/Dockerfile create mode 100644 xdebug.ini diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..cda0ab9b --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Listen for Xdebug", + "type": "php", + "request": "launch", + "port": 9003, + "pathMappings": { + "/var/www/html": "${workspaceFolder}" + } + } + ] + } + \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..32c9abbf --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,16 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Start Docker Compose", + "type": "shell", + "command": "docker-compose up --build", + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [] + } + ] + } + \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 00000000..ff36b6ae --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3" +services: + nginx: + build: + context: . + dockerfile: nginx/Dockerfile + ports: + - "8080:80" + networks: + - internal + volumes: + - ../:/var/www/html + php: + build: + context: . + dockerfile: php/Dockerfile + networks: + - internal + environment: + XDEBUG_MODE: debug + XDEBUG_CONFIG: client_host=host.docker.internal client_port=9003 + volumes: + - ../:/var/www/html +networks: + internal: + driver: bridge \ No newline at end of file diff --git a/docker/nginx/Dockerfile b/docker/nginx/Dockerfile new file mode 100644 index 00000000..a980286d --- /dev/null +++ b/docker/nginx/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx:alpine +COPY ./default.conf /etc/nginx/conf.d \ No newline at end of file diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf new file mode 100644 index 00000000..5279a273 --- /dev/null +++ b/docker/nginx/default.conf @@ -0,0 +1,19 @@ +server { + listen 0.0.0.0:80; + + root /var/www/html; + + location / { + index index.php index.html; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass php:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; + } + + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; +} \ No newline at end of file diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile new file mode 100644 index 00000000..ef9f5785 --- /dev/null +++ b/docker/php/Dockerfile @@ -0,0 +1,4 @@ +FROM php:8.4-fpm + +RUN pecl install xdebug \ + && docker-php-ext-enable xdebug diff --git a/xdebug.ini b/xdebug.ini new file mode 100644 index 00000000..9a38d306 --- /dev/null +++ b/xdebug.ini @@ -0,0 +1,5 @@ +zend_extension=xdebug.so +xdebug.mode=debug +xdebug.start_with_request=yes +xdebug.client_host=host.docker.internal +xdebug.client_port=9003 From dff3f90d00a648376ee2090e3e10d8e314dd3f04 Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Sun, 4 Feb 2024 17:31:08 +0000 Subject: [PATCH 08/14] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 32997f47..163a06bf 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -# Heimdall +# Heimdall [![Heimdall_Banner](https://i.imgur.com/iuV8w3y.png)](https://heimdall.site) From 65a6ad53bf9449429865dc8da5a329765d92dc2c Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Sun, 4 Feb 2024 18:36:21 +0100 Subject: [PATCH 09/14] small --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 163a06bf..32997f47 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -# Heimdall +# Heimdall [![Heimdall_Banner](https://i.imgur.com/iuV8w3y.png)](https://heimdall.site) From 3cbbf807abda5b162d5839dae17e7475b62e3e5b Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Sat, 15 Jun 2024 09:14:52 +0200 Subject: [PATCH 10/14] corrected some spelling mistakes --- lang/de/app.php | 2 +- lang/en/app.php | 2 +- resources/views/auth/login.blade.php | 2 +- resources/views/userselect.blade.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lang/de/app.php b/lang/de/app.php index 62795aff..675ba946 100644 --- a/lang/de/app.php +++ b/lang/de/app.php @@ -107,5 +107,5 @@ return array ( 'dashboard.settings' => 'Einstellungen', 'role' => 'Authentifizierungsrolle', 'unauthorized_for_form' => 'Sie haben keinen Zugriff auf diese Seite.', - 'diabled_feature' => 'Diese Funktion ist deaktiviert.', + 'disabled_feature' => 'Diese Funktion ist deaktiviert.', ); \ No newline at end of file diff --git a/lang/en/app.php b/lang/en/app.php index 2941edb8..0a63eae7 100644 --- a/lang/en/app.php +++ b/lang/en/app.php @@ -116,5 +116,5 @@ return array ( 'dashboard.settings' => 'Settings', 'role' => 'Authentification role', 'unauthorized_for_form' => 'You are not authorised to view this form.', - 'diabled_feature' => 'This feature is disabled.', + 'disabled_feature' => 'This feature is disabled.', ); \ No newline at end of file diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 7247d4ce..00055c70 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -27,7 +27,7 @@ $user = \App\User::currentUser();
- {{ __('app.diabled_feature') }} + {{ __('app.disabled_feature') }}
diff --git a/resources/views/userselect.blade.php b/resources/views/userselect.blade.php index abcd673d..02eca822 100644 --- a/resources/views/userselect.blade.php +++ b/resources/views/userselect.blade.php @@ -18,7 +18,7 @@
- {{ __('app.diabled_feature') }} + {{ __('app.disabled_feature') }}
From 2e5d7453cfeefb81f1a8f7d70dd791baf12f9768 Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Sun, 16 Jun 2024 18:00:49 +0200 Subject: [PATCH 11/14] added ENV variable for the auth roles delimiter --- config/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/app.php b/config/app.php index b4adda7d..50ad8888 100644 --- a/config/app.php +++ b/config/app.php @@ -196,6 +196,6 @@ return [ 'auth_roles_header' => env('AUTH_ROLES_HEADER', 'remote-groups'), 'auth_roles_http_header' => env('AUTH_ROLES_HTTP_HEADER', 'HTTP_REMOTE_GROUPS'), 'auth_roles_admin' => env('AUTH_ROLES_ADMIN', 'admin'), - 'auth_roles_delimiter' => ',', + 'auth_roles_delimiter' => env('AUTH_ROLES_DELIMITER', ','), ]; From c71479f26606dad26f19a214eaced51be2d4c096 Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Mon, 17 Jun 2024 09:33:37 +0200 Subject: [PATCH 12/14] fixed some typos --- lang/en/app.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lang/en/app.php b/lang/en/app.php index 0a63eae7..3c31f53d 100644 --- a/lang/en/app.php +++ b/lang/en/app.php @@ -114,7 +114,7 @@ return array ( 'alert.success.user_restored' => 'User restored successfully', 'dashboard.reorder' => 'Reorder and pin items', 'dashboard.settings' => 'Settings', - 'role' => 'Authentification role', - 'unauthorized_for_form' => 'You are not authorised to view this form.', + 'role' => 'Authentication role', + 'unauthorized_for_form' => 'You are not authorized to view this form.', 'disabled_feature' => 'This feature is disabled.', ); \ No newline at end of file From 55d3766b39a1a7f97b9a7e6b29fa6fcb3a390b00 Mon Sep 17 00:00:00 2001 From: Tobias Kolzer Date: Mon, 17 Jun 2024 10:05:44 +0200 Subject: [PATCH 13/14] added AUTH_ROLES_DELIMITER to example env file --- .env.example | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.example b/.env.example index abaf3c6a..4794f6e4 100644 --- a/.env.example +++ b/.env.example @@ -53,3 +53,4 @@ AUTH_ROLES_ENABLE=false AUTH_ROLES_HEADER="remote-groups" AUTH_ROLES_HTTP_HEADER="HTTP_REMOTE_GROUPS" AUTH_ROLES_ADMIN="admin" +AUTH_ROLES_DELIMITER="," From 5950ca90768f1aa88b5f2c4ee2a1ab02f2c27c64 Mon Sep 17 00:00:00 2001 From: knom Date: Mon, 5 May 2025 11:43:03 +0200 Subject: [PATCH 14/14] renamed "controles" to "controls" --- app/Providers/AppServiceProvider.php | 4 ++-- resources/views/items/form.blade.php | 2 +- resources/views/items/import.blade.php | 2 +- resources/views/items/list.blade.php | 2 +- resources/views/layouts/app.blade.php | 2 +- resources/views/settings/form.blade.php | 2 +- resources/views/settings/list.blade.php | 2 +- resources/views/tags/form.blade.php | 2 +- resources/views/tags/list.blade.php | 2 +- resources/views/users/form.blade.php | 2 +- resources/views/users/index.blade.php | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 730d8437..c44c21bb 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -89,9 +89,9 @@ class AppServiceProvider extends ServiceProvider $view->with('allusers', $allusers); $view->with('current_user', $current_user); if (config('app.auth_roles_enable')){ - $view->with('enable_auth_admin_controles', in_array(config('app.auth_roles_admin'),explode(config('app.auth_roles_delimiter'), $_SERVER[config('app.auth_roles_http_header')]))); + $view->with('enable_auth_admin_controls', in_array(config('app.auth_roles_admin'),explode(config('app.auth_roles_delimiter'), $_SERVER[config('app.auth_roles_http_header')]))); } else { - $view->with('enable_auth_admin_controles', true); + $view->with('enable_auth_admin_controls', true); } }); diff --git a/resources/views/items/form.blade.php b/resources/views/items/form.blade.php index d39687ab..95265b8c 100644 --- a/resources/views/items/form.blade.php +++ b/resources/views/items/form.blade.php @@ -1,5 +1,5 @@
- @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls)
{{ __('app.apps.preview') }}
diff --git a/resources/views/items/import.blade.php b/resources/views/items/import.blade.php index cda7c7b2..f0d4e66e 100644 --- a/resources/views/items/import.blade.php +++ b/resources/views/items/import.blade.php @@ -3,7 +3,7 @@ @section('content')
- @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls)
{{ __('app.import') }}
diff --git a/resources/views/items/list.blade.php b/resources/views/items/list.blade.php index b38ca421..162d981a 100644 --- a/resources/views/items/list.blade.php +++ b/resources/views/items/list.blade.php @@ -2,7 +2,7 @@ @section('content')
- @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls)
{{ __('app.apps.app_list') }} diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index be67e0a5..3ad98899 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -94,7 +94,7 @@
@endif @yield('content') - @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls)
@if(Route::is('dash') || Route::is('tags.show'))
{{ __('app.dashboard.reorder') }}
diff --git a/resources/views/settings/form.blade.php b/resources/views/settings/form.blade.php index c9c3029e..f3739e84 100644 --- a/resources/views/settings/form.blade.php +++ b/resources/views/settings/form.blade.php @@ -1,5 +1,5 @@
-@if($enable_auth_admin_controles) +@if($enable_auth_admin_controls)
{{ __($setting->label) }}
diff --git a/resources/views/settings/list.blade.php b/resources/views/settings/list.blade.php index a7212edf..e47bf69c 100644 --- a/resources/views/settings/list.blade.php +++ b/resources/views/settings/list.blade.php @@ -2,7 +2,7 @@ @section('content') - @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls) @foreach ($groups as $index => $group)
diff --git a/resources/views/tags/form.blade.php b/resources/views/tags/form.blade.php index 2da7b707..b6f7fa5e 100644 --- a/resources/views/tags/form.blade.php +++ b/resources/views/tags/form.blade.php @@ -1,5 +1,5 @@
- @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls)
{{ __('app.apps.add_tag') }}
diff --git a/resources/views/tags/list.blade.php b/resources/views/tags/list.blade.php index 58f5a3f3..3f6ad23b 100644 --- a/resources/views/tags/list.blade.php +++ b/resources/views/tags/list.blade.php @@ -2,7 +2,7 @@ @section('content')
- @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls)
{{ __('app.apps.tag_list') }} diff --git a/resources/views/users/form.blade.php b/resources/views/users/form.blade.php index 31a8e3cc..afcb4f73 100644 --- a/resources/views/users/form.blade.php +++ b/resources/views/users/form.blade.php @@ -1,5 +1,5 @@
- @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls)
{{ __('app.user.add_user') }}
diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php index 1d485f5b..3c0d1ad4 100644 --- a/resources/views/users/index.blade.php +++ b/resources/views/users/index.blade.php @@ -2,7 +2,7 @@ @section('content')
- @if($enable_auth_admin_controles) + @if($enable_auth_admin_controls)
{{ __('app.user.user_list') }}