From e86e681c5373a5816870b22ef893fe827764ab7f Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 12 Oct 2018 14:57:46 +0100 Subject: [PATCH] Initial commit of multi user --- app/Http/Controllers/UserController.php | 88 +++++++++++++++++ app/Item.php | 10 +- app/User.php | 9 ++ .../2018_10_12_122907_create_users_table.php | 37 +++++++ ...12_123036_create_password_resets_table.php | 32 ++++++ ...0_12_131222_add_user_id_to_items_table.php | 32 ++++++ database/seeds/DatabaseSeeder.php | 1 + database/seeds/UsersSeeder.php | 26 +++++ resources/lang/en/app.php | 8 ++ resources/views/app.blade.php | 1 + resources/views/users/create.blade.php | 11 +++ resources/views/users/edit.blade.php | 11 +++ resources/views/users/form.blade.php | 98 +++++++++++++++++++ resources/views/users/index.blade.php | 56 +++++++++++ resources/views/users/scripts.blade.php | 32 ++++++ resources/views/users/trash.blade.php | 52 ++++++++++ routes/web.php | 2 + vendor/composer/ClassLoader.php | 4 +- vendor/composer/LICENSE | 69 +++++++++---- vendor/composer/autoload_classmap.php | 6 ++ vendor/composer/autoload_static.php | 6 ++ 21 files changed, 571 insertions(+), 20 deletions(-) create mode 100644 app/Http/Controllers/UserController.php create mode 100644 database/migrations/2018_10_12_122907_create_users_table.php create mode 100644 database/migrations/2018_10_12_123036_create_password_resets_table.php create mode 100644 database/migrations/2018_10_12_131222_add_user_id_to_items_table.php create mode 100644 database/seeds/UsersSeeder.php create mode 100644 resources/views/users/create.blade.php create mode 100644 resources/views/users/edit.blade.php create mode 100644 resources/views/users/form.blade.php create mode 100644 resources/views/users/index.blade.php create mode 100644 resources/views/users/scripts.blade.php create mode 100644 resources/views/users/trash.blade.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php new file mode 100644 index 00000000..f3176130 --- /dev/null +++ b/app/Http/Controllers/UserController.php @@ -0,0 +1,88 @@ +where('type', $typeid); } + /** + * Get the user that owns the item. + */ + public function user() + { + return $this->belongsTo('App\User'); + } + } diff --git a/app/User.php b/app/User.php index bfd96a6a..7c7d7ea1 100644 --- a/app/User.php +++ b/app/User.php @@ -26,4 +26,13 @@ class User extends Authenticatable protected $hidden = [ 'password', 'remember_token', ]; + + /** + * Get the items for the user. + */ + public function items() + { + return $this->hasMany('App\Item'); + } + } diff --git a/database/migrations/2018_10_12_122907_create_users_table.php b/database/migrations/2018_10_12_122907_create_users_table.php new file mode 100644 index 00000000..4deecd7b --- /dev/null +++ b/database/migrations/2018_10_12_122907_create_users_table.php @@ -0,0 +1,37 @@ +increments('id'); + $table->string('name'); + $table->string('email')->unique(); + $table->string('avatar')->nullable(); + $table->string('password')->nullable(); + $table->boolean('public_front')->default(false); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('users'); + } +} diff --git a/database/migrations/2018_10_12_123036_create_password_resets_table.php b/database/migrations/2018_10_12_123036_create_password_resets_table.php new file mode 100644 index 00000000..0d5cb845 --- /dev/null +++ b/database/migrations/2018_10_12_123036_create_password_resets_table.php @@ -0,0 +1,32 @@ +string('email')->index(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('password_resets'); + } +} diff --git a/database/migrations/2018_10_12_131222_add_user_id_to_items_table.php b/database/migrations/2018_10_12_131222_add_user_id_to_items_table.php new file mode 100644 index 00000000..9afa7902 --- /dev/null +++ b/database/migrations/2018_10_12_131222_add_user_id_to_items_table.php @@ -0,0 +1,32 @@ +integer('user_id')->default(1)->index(); // 0 = item, 1 = category + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('items', function (Blueprint $table) { + $table->dropColumn(['user_id']); + }); + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index c03f1d90..bb08577f 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -12,5 +12,6 @@ class DatabaseSeeder extends Seeder public function run() { $this->call(SettingsSeeder::class); + $this->call(UsersSeeder::class); } } diff --git a/database/seeds/UsersSeeder.php b/database/seeds/UsersSeeder.php new file mode 100644 index 00000000..38428483 --- /dev/null +++ b/database/seeds/UsersSeeder.php @@ -0,0 +1,26 @@ +id = 1; + $user->name = 'User'; + $user->email = 'test@test.com'; + $user->save(); + } else { + //$user->save(); + } + } +} diff --git a/resources/lang/en/app.php b/resources/lang/en/app.php index 39b86ff7..07baf280 100644 --- a/resources/lang/en/app.php +++ b/resources/lang/en/app.php @@ -72,6 +72,14 @@ return [ 'apps.tags' => 'Tags', 'apps.override' => 'If different to main url', + 'user.user_list' => 'Users', + 'user.add_user' => 'Add user', + 'user.name' => 'Name', + 'user.avatar' => 'Avatar', + 'user.email' => 'Email', + 'user.password_confirm' => 'Confirm Password', + 'user.secure_front' => 'Allow public access to front - Only enforced if a password is set.', + 'url' => 'URL', 'title' => 'Title', 'delete' => 'Delete', diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index 124fc2d5..e627a2c8 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -79,6 +79,7 @@ @endif + diff --git a/resources/views/users/create.blade.php b/resources/views/users/create.blade.php new file mode 100644 index 00000000..6ac7532a --- /dev/null +++ b/resources/views/users/create.blade.php @@ -0,0 +1,11 @@ +@extends('app') + +@section('content') + + {!! Form::open(array('route' => 'users.store', 'id' => 'itemform', 'files' => true, 'method'=>'POST')) !!} + @include('users.form') + {!! Form::close() !!} + +@endsection +@section('scripts') +@endsection \ No newline at end of file diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php new file mode 100644 index 00000000..21609238 --- /dev/null +++ b/resources/views/users/edit.blade.php @@ -0,0 +1,11 @@ +@extends('app') + +@section('content') + + {!! Form::model($item, ['method' => 'PATCH', 'id' => 'itemform', 'files' => true, 'route' => ['users.update', $item->id]]) !!} + @include('users.form') + {!! Form::close() !!} + +@endsection +@section('scripts') +@endsection \ No newline at end of file diff --git a/resources/views/users/form.blade.php b/resources/views/users/form.blade.php new file mode 100644 index 00000000..ee6c27f2 --- /dev/null +++ b/resources/views/users/form.blade.php @@ -0,0 +1,98 @@ +
+
+
{{ __('app.user.add_user') }}
+
+ + {{ __('app.buttons.cancel') }} +
+
+
+ {!! csrf_field() !!} + +
+ + {!! Form::text('name', null, array('placeholder' => __('app.user.name'), 'id' => 'appname', 'class' => 'form-control')) !!} +
+ + {!! Form::text('title', null, array('placeholder' => __('app.apps.title'), 'id' => 'appname', 'class' => 'form-control')) !!} +
+ +
+
+ + {!! Form::text('email', null, array('placeholder' => 'email@test.com','class' => 'form-control')) !!} +
+ + {!! Form::text('colour', null, array('placeholder' => __('app.apps.hex'),'class' => 'form-control color-picker')) !!} +
+
+
+ +
+
+ @if(isset($item->avatar) && !empty($item->avatar) || old('avatar')) + avatar)) $avatar = $item->avatar; + else $avatar = old('avatar'); + ?> + + {!! Form::hidden('avatar', $avatar, ['class' => 'form-control']) !!} + @else + + @endif +
+
+ + +
+
+
+ +
+
+ + {!! Form::text('title', null, array('placeholder' => __('app.apps.title'), 'id' => 'appname', 'class' => 'form-control')) !!} +
+ + {!! Form::hidden('pinned', '0') !!} + + +
+
+ + {!! Form::text('colour', null, array('placeholder' => __('app.apps.hex'),'class' => 'form-control color-picker')) !!} +
+
+ + + + @if(isset($item) && isset($item->config->view)) +
+ @if(isset($item)) + @include('supportedapps.'.$item->config->view) + @endif +
+ @else +
+ @endif + +
+ + +
+ + diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php new file mode 100644 index 00000000..34f0963f --- /dev/null +++ b/resources/views/users/index.blade.php @@ -0,0 +1,56 @@ +@extends('app') + +@section('content') +
+
+
+ {{ __('app.user.user_list') }} + @if( isset($trash) && $trash->count() > 0 ) + {{ __('app.apps.view_trash') }} ({{ $trash->count() }}) + @endif + +
+ +
+ + + + + + + + + + + + @if($users->first()) + @foreach($users as $user) + + + + + + + @endforeach + @else + + + + @endif + + + +
{{ __('app.user.name') }}{{ __('app.apps.password') }}{{ __('app.settings.edit') }}{{ __('app.delete') }}
{{ $user->name }}target }} href="{!! route('users.edit', [$user->id], false) !!}" title="{{ __('user.settings.edit') }} {!! $user->title !!}"> + {!! Form::open(['method' => 'DELETE','route' => ['users.destroy', $user->id],'style'=>'display:inline']) !!} + + {!! Form::close() !!} +
+ {{ __('app.user.settings.no_items') }} +
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/users/scripts.blade.php b/resources/views/users/scripts.blade.php new file mode 100644 index 00000000..7dcf402a --- /dev/null +++ b/resources/views/users/scripts.blade.php @@ -0,0 +1,32 @@ + + diff --git a/resources/views/users/trash.blade.php b/resources/views/users/trash.blade.php new file mode 100644 index 00000000..d3833586 --- /dev/null +++ b/resources/views/users/trash.blade.php @@ -0,0 +1,52 @@ +@extends('app') + +@section('content') +
+
+
+ Showing Deleted Applications +
+ +
+ + + + + + + + + + + + @if($trash->first()) + @foreach($trash as $app) + + + + + + + @endforeach + @else + + + + @endif + + + +
{{ __('app.title') }}Url{{ __('app.restore') }}{{ __('app.delete') }}
{{ $app->title }}{{ __('app.url') }} + {!! Form::open(['method' => 'DELETE','route' => ['items.destroy', $app->id],'style'=>'display:inline']) !!} + + + {!! Form::close() !!} +
+ {{ __('app.settings.no_items') }} +
+
+ + +@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 8d180d29..94989be7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -36,6 +36,8 @@ Route::get('view/{name_view}', function ($name_view) { return view('supportedapps.'.$name_view); }); +Route::resource('users', 'UserController'); + /** * Settings. */ diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index 2c72175e..dc02dfb1 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -379,9 +379,9 @@ class ClassLoader $subPath = substr($subPath, 0, $lastPos); $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + if (file_exists($file = $dir . $pathEnd)) { return $file; } } diff --git a/vendor/composer/LICENSE b/vendor/composer/LICENSE index f27399a0..f0157a6e 100644 --- a/vendor/composer/LICENSE +++ b/vendor/composer/LICENSE @@ -1,21 +1,56 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Composer +Upstream-Contact: Jordi Boggiano +Source: https://github.com/composer/composer -Copyright (c) Nils Adermann, Jordi Boggiano +Files: * +Copyright: 2016, Nils Adermann + 2016, Jordi Boggiano +License: Expat -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: +Files: src/Composer/Util/TlsHelper.php +Copyright: 2016, Nils Adermann + 2016, Jordi Boggiano + 2013, Evan Coury +License: Expat and BSD-2-Clause -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +License: BSD-2-Clause + Redistribution and use in source and binary forms, with or without modification, + are permitted provided that the following conditions are met: + . + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + . + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +License: Expat + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is furnished + to do so, subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 1b3ea7ce..751c186b 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -16,6 +16,7 @@ return array( 'App\\Http\\Controllers\\ItemController' => $baseDir . '/app/Http/Controllers/ItemController.php', 'App\\Http\\Controllers\\SettingsController' => $baseDir . '/app/Http/Controllers/SettingsController.php', 'App\\Http\\Controllers\\TagController' => $baseDir . '/app/Http/Controllers/TagController.php', + 'App\\Http\\Controllers\\UserController' => $baseDir . '/app/Http/Controllers/UserController.php', 'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php', 'App\\Http\\Middleware\\EncryptCookies' => $baseDir . '/app/Http/Middleware/EncryptCookies.php', 'App\\Http\\Middleware\\RedirectIfAuthenticated' => $baseDir . '/app/Http/Middleware/RedirectIfAuthenticated.php', @@ -31,6 +32,8 @@ return array( 'App\\Setting' => $baseDir . '/app/Setting.php', 'App\\SettingGroup' => $baseDir . '/app/SettingGroup.php', 'App\\SupportedApps\\AirSonic' => $baseDir . '/app/SupportedApps/AirSonic.php', + 'App\\SupportedApps\\Bazarr' => $baseDir . '/app/SupportedApps/Bazarr.php', + 'App\\SupportedApps\\BookStack' => $baseDir . '/app/SupportedApps/BookStack.php', 'App\\SupportedApps\\Booksonic' => $baseDir . '/app/SupportedApps/Booksonic.php', 'App\\SupportedApps\\Cardigann' => $baseDir . '/app/SupportedApps/Cardigann.php', 'App\\SupportedApps\\Contracts\\Applications' => $baseDir . '/app/SupportedApps/Contracts/Applications.php', @@ -41,6 +44,7 @@ return array( 'App\\SupportedApps\\Duplicati' => $baseDir . '/app/SupportedApps/Duplicati.php', 'App\\SupportedApps\\Emby' => $baseDir . '/app/SupportedApps/Emby.php', 'App\\SupportedApps\\Flood' => $baseDir . '/app/SupportedApps/Flood.php', + 'App\\SupportedApps\\FreshRSS' => $baseDir . '/app/SupportedApps/FreshRSS.php', 'App\\SupportedApps\\Gitea' => $baseDir . '/app/SupportedApps/Gitea.php', 'App\\SupportedApps\\Glances' => $baseDir . '/app/SupportedApps/Glances.php', 'App\\SupportedApps\\Grafana' => $baseDir . '/app/SupportedApps/Grafana.php', @@ -78,6 +82,7 @@ return array( 'App\\SupportedApps\\Sickrage' => $baseDir . '/app/SupportedApps/Sickrage.php', 'App\\SupportedApps\\Sonarr' => $baseDir . '/app/SupportedApps/Sonarr.php', 'App\\SupportedApps\\Syncthing' => $baseDir . '/app/SupportedApps/Syncthing.php', + 'App\\SupportedApps\\TVheadend' => $baseDir . '/app/SupportedApps/TVheadend.php', 'App\\SupportedApps\\Tautulli' => $baseDir . '/app/SupportedApps/Tautulli.php', 'App\\SupportedApps\\Traefik' => $baseDir . '/app/SupportedApps/Traefik.php', 'App\\SupportedApps\\Transmission' => $baseDir . '/app/SupportedApps/Transmission.php', @@ -3403,6 +3408,7 @@ return array( 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php', 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php', 'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php', + 'UsersSeeder' => $baseDir . '/database/seeds/UsersSeeder.php', 'Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', 'Whoops\\Exception\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php', 'Whoops\\Exception\\Formatter' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Formatter.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 4eb048a0..91f150af 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -359,6 +359,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf 'App\\Http\\Controllers\\ItemController' => __DIR__ . '/../..' . '/app/Http/Controllers/ItemController.php', 'App\\Http\\Controllers\\SettingsController' => __DIR__ . '/../..' . '/app/Http/Controllers/SettingsController.php', 'App\\Http\\Controllers\\TagController' => __DIR__ . '/../..' . '/app/Http/Controllers/TagController.php', + 'App\\Http\\Controllers\\UserController' => __DIR__ . '/../..' . '/app/Http/Controllers/UserController.php', 'App\\Http\\Kernel' => __DIR__ . '/../..' . '/app/Http/Kernel.php', 'App\\Http\\Middleware\\EncryptCookies' => __DIR__ . '/../..' . '/app/Http/Middleware/EncryptCookies.php', 'App\\Http\\Middleware\\RedirectIfAuthenticated' => __DIR__ . '/../..' . '/app/Http/Middleware/RedirectIfAuthenticated.php', @@ -374,6 +375,8 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf 'App\\Setting' => __DIR__ . '/../..' . '/app/Setting.php', 'App\\SettingGroup' => __DIR__ . '/../..' . '/app/SettingGroup.php', 'App\\SupportedApps\\AirSonic' => __DIR__ . '/../..' . '/app/SupportedApps/AirSonic.php', + 'App\\SupportedApps\\Bazarr' => __DIR__ . '/../..' . '/app/SupportedApps/Bazarr.php', + 'App\\SupportedApps\\BookStack' => __DIR__ . '/../..' . '/app/SupportedApps/BookStack.php', 'App\\SupportedApps\\Booksonic' => __DIR__ . '/../..' . '/app/SupportedApps/Booksonic.php', 'App\\SupportedApps\\Cardigann' => __DIR__ . '/../..' . '/app/SupportedApps/Cardigann.php', 'App\\SupportedApps\\Contracts\\Applications' => __DIR__ . '/../..' . '/app/SupportedApps/Contracts/Applications.php', @@ -384,6 +387,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf 'App\\SupportedApps\\Duplicati' => __DIR__ . '/../..' . '/app/SupportedApps/Duplicati.php', 'App\\SupportedApps\\Emby' => __DIR__ . '/../..' . '/app/SupportedApps/Emby.php', 'App\\SupportedApps\\Flood' => __DIR__ . '/../..' . '/app/SupportedApps/Flood.php', + 'App\\SupportedApps\\FreshRSS' => __DIR__ . '/../..' . '/app/SupportedApps/FreshRSS.php', 'App\\SupportedApps\\Gitea' => __DIR__ . '/../..' . '/app/SupportedApps/Gitea.php', 'App\\SupportedApps\\Glances' => __DIR__ . '/../..' . '/app/SupportedApps/Glances.php', 'App\\SupportedApps\\Grafana' => __DIR__ . '/../..' . '/app/SupportedApps/Grafana.php', @@ -421,6 +425,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf 'App\\SupportedApps\\Sickrage' => __DIR__ . '/../..' . '/app/SupportedApps/Sickrage.php', 'App\\SupportedApps\\Sonarr' => __DIR__ . '/../..' . '/app/SupportedApps/Sonarr.php', 'App\\SupportedApps\\Syncthing' => __DIR__ . '/../..' . '/app/SupportedApps/Syncthing.php', + 'App\\SupportedApps\\TVheadend' => __DIR__ . '/../..' . '/app/SupportedApps/TVheadend.php', 'App\\SupportedApps\\Tautulli' => __DIR__ . '/../..' . '/app/SupportedApps/Tautulli.php', 'App\\SupportedApps\\Traefik' => __DIR__ . '/../..' . '/app/SupportedApps/Traefik.php', 'App\\SupportedApps\\Transmission' => __DIR__ . '/../..' . '/app/SupportedApps/Transmission.php', @@ -3746,6 +3751,7 @@ class ComposerStaticInit4b6fb9210a1ea37c2db27b8ff53a1ecf 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php', 'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php', 'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php', + 'UsersSeeder' => __DIR__ . '/../..' . '/database/seeds/UsersSeeder.php', 'Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', 'Whoops\\Exception\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php', 'Whoops\\Exception\\Formatter' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Formatter.php',