Merge branch 'develop'

This commit is contained in:
2021-10-13 00:02:42 +01:00
576 changed files with 38037 additions and 27721 deletions

35
app/Providers/AppServiceProvider.php Normal file → Executable file
View File

@@ -1,12 +1,33 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use App\Application;
use App\Observers\ApplicationObserver;
use App\Observers\UserObserver;
use App\User;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
use Sentry;
@@ -30,14 +51,24 @@ class AppServiceProvider extends ServiceProvider
public function boot()
{
Sentry\init([
'release' => env('RELEASE')
'release' => env('RELEASE'),
]);
Schema::defaultStringLength(191);
// Keep using Bootstrap; Laravel 8 has the paginator use Tailwind. Quite opinionated tbh
Paginator::useBootstrap();
User::observe(UserObserver::class);
Application::observe(ApplicationObserver::class);
$this->app['request']->server->set('HTTPS', $this->app->environment() != 'local');
$https = ($this->app->environment() != 'local');
if(config('app.force_secure') && $this->app->environment() != 'production')
$https = true;
$this->app['request']->server->set('HTTPS', $https);
View::share('demoActive', config('demo.is_enabled'));
}
}

58
app/Providers/AuthServiceProvider.php Normal file → Executable file
View File

@@ -1,27 +1,48 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use App\Policies\ProfilePolicy;
use App\Policies\VacancyPolicy;
use App\Policies\UserPolicy;
use App\Policies\BanPolicy;
use App\Policies\FormPolicy;
use App\Policies\VotePolicy;
use App\Policies\ApplicationPolicy;
use App\Policies\AppointmentPolicy;
use App\User;
use App\Form;
use App\Vote;
use App\Vacancy;
use App\ApiKey;
use App\Application;
use App\Appointment;
use App\Ban;
use App\Form;
use App\Policies\ApiKeyPolicy;
use App\Policies\ApplicationPolicy;
use App\Policies\AppointmentPolicy;
use App\Policies\BanPolicy;
use App\Policies\FormPolicy;
use App\Policies\ProfilePolicy;
use App\Policies\TeamFilePolicy;
use App\Policies\TeamPolicy;
use App\Policies\UserPolicy;
use App\Policies\VacancyPolicy;
use App\Policies\VotePolicy;
use App\Team;
use App\TeamFile;
use App\User;
use App\Vacancy;
use App\Vote;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
{
@@ -40,7 +61,10 @@ class AuthServiceProvider extends ServiceProvider
'App\Form' => 'App\Policies\FormPolicy',
Vote::class => VotePolicy::class,
Ban::class => BanPolicy::class,
Appointment::class => AppointmentPolicy::class
Appointment::class => AppointmentPolicy::class,
Team::class => TeamPolicy::class,
TeamFile::class => TeamFilePolicy::class,
ApiKey::class => ApiKeyPolicy::class
];
/**

19
app/Providers/BroadcastServiceProvider.php Normal file → Executable file
View File

@@ -1,5 +1,24 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use Illuminate\Support\Facades\Broadcast;

30
app/Providers/ContextAwareValidatorProvider.php Normal file → Executable file
View File

@@ -1,10 +1,28 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App;
use Illuminate\Support\ServiceProvider;
class ContextAwareValidatorProvider extends ServiceProvider
{
@@ -25,10 +43,8 @@ class ContextAwareValidatorProvider extends ServiceProvider
*/
public function boot()
{
App::bind('contextAwareValidator', function(){
return new App\Helpers\ContextAwareValidator();
});
App::bind('contextAwareValidator', function () {
return new App\Helpers\ContextAwareValidator();
});
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App;
class DigitalStorageProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
App::bind('digitalStorageHelperFacadeRoot', function (){
return new App\Helpers\DigitalStorageHelper();
});
}
}

34
app/Providers/EventServiceProvider.php Normal file → Executable file
View File

@@ -1,5 +1,24 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use App\Listeners\LogAuthenticationFailure;
@@ -22,23 +41,23 @@ class EventServiceProvider extends ServiceProvider
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
OnUserRegistration::class
OnUserRegistration::class,
],
Failed::class => [
LogAuthenticationFailure::class
LogAuthenticationFailure::class,
],
Login::class => [
LogAuthenticationSuccess::class
LogAuthenticationSuccess::class,
],
'App\Events\ApplicationApprovedEvent' => [
'App\Listeners\PromoteUser'
'App\Listeners\PromoteUser',
],
'App\Events\ApplicationDeniedEvent' => [
'App\Listeners\DenyUser'
'App\Listeners\DenyUser',
],
'App\Events\UserBannedEvent' => [
'App\Listeners\OnUserBanned'
]
'App\Listeners\OnUserBanned',
],
];
/**
@@ -48,7 +67,6 @@ class EventServiceProvider extends ServiceProvider
*/
public function boot()
{
parent::boot();
//

25
app/Providers/IPInfoProvider.php Normal file → Executable file
View File

@@ -1,9 +1,28 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App;
use Illuminate\Support\ServiceProvider;
class IPInfoProvider extends ServiceProvider
{
@@ -24,10 +43,8 @@ class IPInfoProvider extends ServiceProvider
*/
public function boot()
{
App::bind('ipInformationFacade', function(){
App::bind('ipInformationFacade', function () {
return new App\CustomFacades\IP();
});
}
}

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Providers;
use App;
use App\Helpers\JSON;
use Illuminate\Support\ServiceProvider;
class JSONProvider extends ServiceProvider
{
/**
* Register services.
*
* @return void
*/
public function register()
{
//
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
App::bind('json', function () {
return new JSON();
});
}
}

23
app/Providers/OptionsProvider.php Normal file → Executable file
View File

@@ -1,9 +1,28 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App;
use Illuminate\Support\ServiceProvider;
class OptionsProvider extends ServiceProvider
{
@@ -24,7 +43,7 @@ class OptionsProvider extends ServiceProvider
*/
public function boot()
{
App::bind('smOptions', function (){
App::bind('smOptions', function () {
return new App\Helpers\Options();
});
}

29
app/Providers/RouteServiceProvider.php Normal file → Executable file
View File

@@ -1,5 +1,24 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
@@ -7,15 +26,6 @@ use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
/**
* This namespace is applied to your controller routes.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
/**
* The path to the "home" route for your application.
*
@@ -59,7 +69,6 @@ class RouteServiceProvider extends ServiceProvider
protected function mapWebRoutes()
{
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
}

25
app/Providers/UUIDConversionProvider.php Normal file → Executable file
View File

@@ -1,9 +1,28 @@
<?php
/*
* Copyright © 2020 Miguel Nogueira
*
* This file is part of Raspberry Staff Manager.
*
* Raspberry Staff Manager is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Raspberry Staff Manager is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see <https://www.gnu.org/licenses/>.
*/
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App;
use Illuminate\Support\ServiceProvider;
class UUIDConversionProvider extends ServiceProvider
{
@@ -24,10 +43,8 @@ class UUIDConversionProvider extends ServiceProvider
*/
public function boot()
{
App::bind('uuidConversionFacade', function(){
App::bind('uuidConversionFacade', function () {
return new App\UUID\UUID();
});
}
}