diff --git a/.env.example b/.env.example
index 87f6e79..47c6780 100755
--- a/.env.example
+++ b/.env.example
@@ -6,6 +6,8 @@ APP_URL=http://localhost
APP_LOGO="https://www.raspberrypi.org/app/uploads/2020/05/Raspberry-Pi-OS-downloads-image-150x150-1.png"
APP_AUTH_BANNER=""
APP_SITEHOMEPAGE=""
+API_PREFIX="api"
+
# The auth banner is a relative path
# Hides IP addresses
diff --git a/.idea/php.xml b/.idea/php.xml
index 1a033c9..50af969 100755
--- a/.idea/php.xml
+++ b/.idea/php.xml
@@ -2,162 +2,158 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -166,4 +162,4 @@
-
+
\ No newline at end of file
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index b50fa90..a447643 100755
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -53,6 +53,7 @@ class Kernel extends ConsoleKernel
$schedule->job(new ProcessDueSuspensions)
->daily();
// Production value: Every day
+ // Development value: Every minute
}
/**
diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php
index 4c61bf1..e02398d 100755
--- a/app/Http/Controllers/Auth/RegisterController.php
+++ b/app/Http/Controllers/Auth/RegisterController.php
@@ -125,7 +125,7 @@ class RegisterController extends Controller
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
- 'originalIP' => IP::shouldCollect() ? '0.0.0.0' : request()->ip(),
+ 'originalIP' => IP::shouldCollect() ? request()->ip() : '0.0.0.0',
]);
$user->assignRole('user');
diff --git a/app/Jobs/ProcessDueSuspensions.php b/app/Jobs/ProcessDueSuspensions.php
index c3d040d..ca9e352 100755
--- a/app/Jobs/ProcessDueSuspensions.php
+++ b/app/Jobs/ProcessDueSuspensions.php
@@ -22,6 +22,7 @@
namespace App\Jobs;
use App\Ban;
+use App\Services\AccountSuspensionService;
use Carbon\Carbon;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
@@ -34,8 +35,6 @@ class ProcessDueSuspensions implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
- public $bans;
-
/**
* Create a new job instance.
*
@@ -50,20 +49,10 @@ class ProcessDueSuspensions implements ShouldQueue
*
* @return void
*/
- public function handle()
+ public function handle(AccountSuspensionService $service)
{
- Log::debug('Running automatic suspension cleaner...');
- $bans = Ban::all();
+ Log::info('(suspension cleaner) Purging all expired suspension records.');
- if (! is_null($bans)) {
- foreach ($this->bans as $ban) {
- $bannedUntil = Carbon::parse($ban->bannedUntil);
-
- if ($bannedUntil->isToday()) {
- Log::debug('Lifted expired suspension ID '.$ban->id.' for '.$ban->user->name);
- $ban->delete();
- }
- }
- }
+ $service->purgeExpired();
}
}
diff --git a/app/Services/AccountSuspensionService.php b/app/Services/AccountSuspensionService.php
index 54f1029..6676efd 100644
--- a/app/Services/AccountSuspensionService.php
+++ b/app/Services/AccountSuspensionService.php
@@ -5,16 +5,32 @@ namespace App\Services;
use App\Ban;
use App\User;
+use Carbon\Carbon;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
class AccountSuspensionService
{
+ /**
+ * Suspends a user account, with given $reason.
+ *
+ * This method will take the target user and add a suspension to the database,
+ * effectively banning the user from the app. Suspensions may be temporary or permanent.
+ * Suspensions also block registration attempts.
+ *
+ * @param string $reason Suspension reason.
+ * @param string $duration Duration. This is a timestamp.
+ * @param User $target Who to suspend.
+ * @param string $type Permanent or temporary?
+ * @return Ban The ban itself
+ */
public function suspend($reason, $duration, User $target, $type = "on"): Ban {
- Log::debug("AccountSuspensionService: Suspending user account", [
- 'userID' => $target->id
+ Log::alert("An user account has just been suspended.", [
+ 'taget_email' => $target->email,
+ 'suspended_by' => Auth::user()->email,
+ 'reason' => $reason
]);
if ($type == "on") {
@@ -32,16 +48,42 @@ class AccountSuspensionService
return $ban;
}
+ /**
+ * Lifts someone's suspension
+ *
+ * @param User $user The user to unsuspend
+ */
public function unsuspend(User $user): void {
+
+ Log::alert("A suspension has just been lifted.", [
+ 'target_email' => $user->email,
+ ]);
+
$user->bans->delete();
}
+ /**
+ * Checks whether a user is suspended
+ *
+ * @param User $user The user to check
+ * @return bool Whether the mentioned user is suspended
+ */
public function isSuspended(User $user): bool {
return !is_null($user->bans);
}
+
+ /**
+ * Takes a suspension directly and makes it permanent.
+ *
+ * @param Ban $ban The suspension to make permanent
+ */
public function makePermanent(Ban $ban): void {
+ Log::alert('A suspension has just been made permanent.', [
+ 'target_email' => $ban->user->email
+ ]);
+
$ban->bannedUntil = null;
$ban->isPermanent = true;
@@ -49,5 +91,16 @@ class AccountSuspensionService
}
+ /**
+ * Purges old, expired suspensions from the database
+ *
+ * @return bool Whether any suspensions were lifted
+ */
+ public function purgeExpired()
+ {
+ // Unban on the last day, not on the exact time (with Carbon::now()).
+ return (bool) Ban::whereDate('bannedUntil', '=', Carbon::today())->delete();
+ }
+
}
diff --git a/composer.json b/composer.json
index 5772df4..96b62be 100755
--- a/composer.json
+++ b/composer.json
@@ -12,6 +12,7 @@
"ext-imagick": "*",
"ext-json": "*",
"arcanedev/log-viewer": "^8.1.0",
+ "dingo/api": "^3.0",
"doctrine/dbal": "^2.10",
"fideloper/proxy": "^4.2",
"fruitcake/laravel-cors": "^1.0",
diff --git a/composer.lock b/composer.lock
index 0fa9272..eb4ebc3 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "39f6633d9207dd645f0d1935ee11c483",
+ "content-hash": "f67e442360444c2df4c1024865d820f7",
"packages": [
{
"name": "almasaeed2010/adminlte",
@@ -469,6 +469,223 @@
},
"time": "2020-10-02T16:03:48+00:00"
},
+ {
+ "name": "dingo/api",
+ "version": "v3.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dingo/api.git",
+ "reference": "edd912c912d08de17a33aaf2c471d07575723513"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dingo/api/zipball/edd912c912d08de17a33aaf2c471d07575723513",
+ "reference": "edd912c912d08de17a33aaf2c471d07575723513",
+ "shasum": ""
+ },
+ "require": {
+ "dingo/blueprint": "^0.4",
+ "illuminate/routing": "^7.0|^8.0",
+ "illuminate/support": "^7.0|^8.0",
+ "league/fractal": "^0.19",
+ "php": "^7.2.5|^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2",
+ "illuminate/auth": "^7.0|^8.0",
+ "illuminate/cache": "^7.0|^8.0",
+ "illuminate/console": "^7.0|^8.0",
+ "illuminate/database": "^7.0|^8.0",
+ "illuminate/events": "^7.0|^8.0",
+ "illuminate/filesystem": "^7.0|^8.0",
+ "illuminate/log": "^7.0|^8.0",
+ "illuminate/pagination": "^7.0|^8.0",
+ "laravel/lumen-framework": "^7.0|^8.0",
+ "mockery/mockery": "~1.0",
+ "phpunit/phpunit": "^8.5|^9.0",
+ "squizlabs/php_codesniffer": "~2.0",
+ "tymon/jwt-auth": "1.0.*"
+ },
+ "suggest": {
+ "tymon/jwt-auth": "Protect your API with JSON Web Tokens."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Dingo\\Api\\Provider\\LaravelServiceProvider"
+ ],
+ "aliases": {
+ "API": "Dingo\\Api\\Facade\\API"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dingo\\Api\\": "src/"
+ },
+ "files": [
+ "src/helpers.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jason Lewis",
+ "email": "jason.lewis1991@gmail.com"
+ }
+ ],
+ "description": "A RESTful API package for the Laravel and Lumen frameworks.",
+ "keywords": [
+ "api",
+ "dingo",
+ "laravel",
+ "restful"
+ ],
+ "support": {
+ "issues": "https://github.com/dingo/api/issues",
+ "source": "https://github.com/dingo/api/tree/v3.0.7"
+ },
+ "time": "2021-05-02T12:17:42+00:00"
+ },
+ {
+ "name": "dingo/blueprint",
+ "version": "v0.4.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dingo/blueprint.git",
+ "reference": "e3a8f19ae10716670079c3c162540756dbd20a88"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dingo/blueprint/zipball/e3a8f19ae10716670079c3c162540756dbd20a88",
+ "reference": "e3a8f19ae10716670079c3c162540756dbd20a88",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "~1.2",
+ "illuminate/filesystem": "^7.0|^8.0",
+ "illuminate/support": "^7.0|^8.0",
+ "php": "^7.2.5|^8.0",
+ "phpdocumentor/reflection-docblock": "^3.1 || ^4.1 || ^5"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.5|^8.3|^9.0",
+ "squizlabs/php_codesniffer": "~2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Dingo\\Blueprint\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jason Lewis",
+ "email": "jason.lewis1991@gmail.com"
+ }
+ ],
+ "description": "API Blueprint documentation generator.",
+ "keywords": [
+ "api",
+ "blueprint",
+ "dingo",
+ "docs",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/dingo/blueprint/issues",
+ "source": "https://github.com/dingo/blueprint/tree/v0.4.3"
+ },
+ "time": "2021-04-30T11:20:38+00:00"
+ },
+ {
+ "name": "doctrine/annotations",
+ "version": "1.13.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "5b668aef16090008790395c02c893b1ba13f7e08"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08",
+ "reference": "5b668aef16090008790395c02c893b1ba13f7e08",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "1.*",
+ "ext-tokenizer": "*",
+ "php": "^7.1 || ^8.0",
+ "psr/cache": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "doctrine/cache": "^1.11 || ^2.0",
+ "doctrine/coding-standard": "^6.0 || ^8.1",
+ "phpstan/phpstan": "^0.12.20",
+ "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
+ "symfony/cache": "^4.4 || ^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/1.13.2"
+ },
+ "time": "2021-08-05T19:00:23+00:00"
+ },
{
"name": "doctrine/cache",
"version": "2.1.1",
@@ -816,34 +1033,30 @@
},
{
"name": "doctrine/inflector",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210"
+ "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210",
- "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
+ "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^7.0",
- "phpstan/phpstan": "^0.11",
- "phpstan/phpstan-phpunit": "^0.11",
- "phpstan/phpstan-strict-rules": "^0.11",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ "doctrine/coding-standard": "^8.2",
+ "phpstan/phpstan": "^0.12",
+ "phpstan/phpstan-phpunit": "^0.12",
+ "phpstan/phpstan-strict-rules": "^0.12",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
+ "vimeo/psalm": "^4.10"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
@@ -891,7 +1104,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.x"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.4"
},
"funding": [
{
@@ -907,7 +1120,7 @@
"type": "tidelift"
}
],
- "time": "2020-05-29T15:13:26+00:00"
+ "time": "2021-10-22T20:16:43+00:00"
},
{
"name": "doctrine/lexer",
@@ -1395,16 +1608,16 @@
},
{
"name": "graham-campbell/result-type",
- "version": "v1.0.2",
+ "version": "v1.0.3",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "84afea85c6841deeea872f36249a206e878a5de0"
+ "reference": "296c015dc30ec4322168c5ad3ee5cc11dae827ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/84afea85c6841deeea872f36249a206e878a5de0",
- "reference": "84afea85c6841deeea872f36249a206e878a5de0",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/296c015dc30ec4322168c5ad3ee5cc11dae827ac",
+ "reference": "296c015dc30ec4322168c5ad3ee5cc11dae827ac",
"shasum": ""
},
"require": {
@@ -1440,7 +1653,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.2"
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.3"
},
"funding": [
{
@@ -1452,28 +1665,29 @@
"type": "tidelift"
}
],
- "time": "2021-08-28T21:34:50+00:00"
+ "time": "2021-10-17T19:48:54+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.3.0",
+ "version": "7.4.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "7008573787b430c1c1f650e3722d9bba59967628"
+ "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628",
- "reference": "7008573787b430c1c1f650e3722d9bba59967628",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94",
+ "reference": "868b3571a039f0ebc11ac8f344f4080babe2cb94",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.4",
- "guzzlehttp/psr7": "^1.7 || ^2.0",
+ "guzzlehttp/promises": "^1.5",
+ "guzzlehttp/psr7": "^1.8.3 || ^2.1",
"php": "^7.2.5 || ^8.0",
- "psr/http-client": "^1.0"
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2"
},
"provide": {
"psr/http-client-implementation": "1.0"
@@ -1483,7 +1697,7 @@
"ext-curl": "*",
"php-http/client-integration-tests": "^3.0",
"phpunit/phpunit": "^8.5.5 || ^9.3.5",
- "psr/log": "^1.1"
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
"ext-curl": "Required for CURL handler support",
@@ -1493,7 +1707,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.3-dev"
+ "dev-master": "7.4-dev"
}
},
"autoload": {
@@ -1509,19 +1723,43 @@
"MIT"
],
"authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
}
],
"description": "Guzzle is a PHP HTTP client library",
- "homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
@@ -1535,7 +1773,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.3.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.4.0"
},
"funding": [
{
@@ -1547,28 +1785,24 @@
"type": "github"
},
{
- "url": "https://github.com/alexeyshockov",
- "type": "github"
- },
- {
- "url": "https://github.com/gmponos",
- "type": "github"
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
}
],
- "time": "2021-03-23T11:33:13+00:00"
+ "time": "2021-10-18T09:52:00+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.5.0",
+ "version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0"
+ "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
- "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
+ "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
"shasum": ""
},
"require": {
@@ -1623,7 +1857,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.5.0"
+ "source": "https://github.com/guzzle/promises/tree/1.5.1"
},
"funding": [
{
@@ -1639,7 +1873,7 @@
"type": "tidelift"
}
],
- "time": "2021-10-07T13:05:22+00:00"
+ "time": "2021-10-22T20:56:57+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -1875,16 +2109,16 @@
},
{
"name": "jeroennoten/laravel-adminlte",
- "version": "v3.7.0",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/jeroennoten/Laravel-AdminLTE.git",
- "reference": "81558083c2a99c091e32f11dd0ddbc1e74918ff2"
+ "reference": "4edb26ab39a5f61b83e977d7d90b0b1fdb577dca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/jeroennoten/Laravel-AdminLTE/zipball/81558083c2a99c091e32f11dd0ddbc1e74918ff2",
- "reference": "81558083c2a99c091e32f11dd0ddbc1e74918ff2",
+ "url": "https://api.github.com/repos/jeroennoten/Laravel-AdminLTE/zipball/4edb26ab39a5f61b83e977d7d90b0b1fdb577dca",
+ "reference": "4edb26ab39a5f61b83e977d7d90b0b1fdb577dca",
"shasum": ""
},
"require": {
@@ -1928,22 +2162,22 @@
],
"support": {
"issues": "https://github.com/jeroennoten/Laravel-AdminLTE/issues",
- "source": "https://github.com/jeroennoten/Laravel-AdminLTE/tree/v3.7.0"
+ "source": "https://github.com/jeroennoten/Laravel-AdminLTE/tree/v3.7.1"
},
- "time": "2021-08-20T13:26:30+00:00"
+ "time": "2021-10-19T14:09:09+00:00"
},
{
"name": "laravel/framework",
- "version": "v8.64.0",
+ "version": "v8.68.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "3337c029e1bb31d9712d27437cc27010ba302c9e"
+ "reference": "abe985ff1fb82dd04aab03bc1dc56e83fe61a59f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/3337c029e1bb31d9712d27437cc27010ba302c9e",
- "reference": "3337c029e1bb31d9712d27437cc27010ba302c9e",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/abe985ff1fb82dd04aab03bc1dc56e83fe61a59f",
+ "reference": "abe985ff1fb82dd04aab03bc1dc56e83fe61a59f",
"shasum": ""
},
"require": {
@@ -1957,14 +2191,14 @@
"league/commonmark": "^1.3|^2.0.2",
"league/flysystem": "^1.1",
"monolog/monolog": "^2.0",
- "nesbot/carbon": "^2.31",
+ "nesbot/carbon": "^2.53.1",
"opis/closure": "^3.6",
"php": "^7.3|^8.0",
"psr/container": "^1.0",
"psr/log": "^1.0 || ^2.0",
"psr/simple-cache": "^1.0",
"ramsey/uuid": "^4.2.2",
- "swiftmailer/swiftmailer": "^6.0",
+ "swiftmailer/swiftmailer": "^6.3",
"symfony/console": "^5.1.4",
"symfony/error-handler": "^5.1.4",
"symfony/finder": "^5.1.4",
@@ -2019,22 +2253,23 @@
"illuminate/view": "self.version"
},
"require-dev": {
- "aws/aws-sdk-php": "^3.189.0",
+ "aws/aws-sdk-php": "^3.198.1",
"doctrine/dbal": "^2.13.3|^3.1.2",
- "filp/whoops": "^2.8",
+ "filp/whoops": "^2.14.3",
"guzzlehttp/guzzle": "^6.5.5|^7.0.1",
"league/flysystem-cached-adapter": "^1.0",
"mockery/mockery": "^1.4.4",
"orchestra/testbench-core": "^6.23",
"pda/pheanstalk": "^4.0",
"phpunit/phpunit": "^8.5.19|^9.5.8",
- "predis/predis": "^1.1.2",
+ "predis/predis": "^1.1.9",
"symfony/cache": "^5.1.4"
},
"suggest": {
- "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.189.0).",
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).",
"brianium/paratest": "Required to run tests in parallel (^6.0).",
"doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.2).",
+ "ext-bcmath": "Required to use the multiple_of validation rule.",
"ext-ftp": "Required to use the Flysystem FTP driver.",
"ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
"ext-memcached": "Required to use the memcache cache driver.",
@@ -2042,7 +2277,7 @@
"ext-posix": "Required to use all features of the queue worker.",
"ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
"fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
- "filp/whoops": "Required for friendly error pages in development (^2.8).",
+ "filp/whoops": "Required for friendly error pages in development (^2.14.3).",
"guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).",
"laravel/tinker": "Required to use the tinker console command (^2.0).",
"league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
@@ -2052,7 +2287,7 @@
"nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
"pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
"phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).",
- "predis/predis": "Required to use the predis connector (^1.1.2).",
+ "predis/predis": "Required to use the predis connector (^1.1.9).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
"pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0).",
"symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).",
@@ -2101,7 +2336,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2021-10-12T13:43:13+00:00"
+ "time": "2021-10-27T12:31:46+00:00"
},
{
"name": "laravel/serializable-closure",
@@ -2544,6 +2779,74 @@
],
"time": "2021-08-17T13:49:42+00:00"
},
+ {
+ "name": "league/fractal",
+ "version": "0.19.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/fractal.git",
+ "reference": "06dc15f6ba38f2dde2f919d3095d13b571190a7c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/fractal/zipball/06dc15f6ba38f2dde2f919d3095d13b571190a7c",
+ "reference": "06dc15f6ba38f2dde2f919d3095d13b571190a7c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4"
+ },
+ "require-dev": {
+ "doctrine/orm": "^2.5",
+ "illuminate/contracts": "~5.0",
+ "mockery/mockery": "~0.9",
+ "pagerfanta/pagerfanta": "~1.0.0",
+ "phpunit/phpunit": "^4.8.35 || ^7.5",
+ "squizlabs/php_codesniffer": "~1.5|~2.0|~3.4",
+ "zendframework/zend-paginator": "~2.3"
+ },
+ "suggest": {
+ "illuminate/pagination": "The Illuminate Pagination component.",
+ "pagerfanta/pagerfanta": "Pagerfanta Paginator",
+ "zendframework/zend-paginator": "Zend Framework Paginator"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "0.13-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Fractal\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Phil Sturgeon",
+ "email": "me@philsturgeon.uk",
+ "homepage": "http://philsturgeon.uk/",
+ "role": "Developer"
+ }
+ ],
+ "description": "Handle the output of complex data structures ready for API output.",
+ "homepage": "http://fractal.thephpleague.com/",
+ "keywords": [
+ "api",
+ "json",
+ "league",
+ "rest"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/fractal/issues",
+ "source": "https://github.com/thephpleague/fractal/tree/0.19.2"
+ },
+ "time": "2020-01-24T23:17:29+00:00"
+ },
{
"name": "league/mime-type-detection",
"version": "1.8.0",
@@ -2602,16 +2905,16 @@
},
{
"name": "mcamara/laravel-localization",
- "version": "1.6.1",
+ "version": "1.6.2",
"source": {
"type": "git",
"url": "https://github.com/mcamara/laravel-localization.git",
- "reference": "4f0bfd89e5ee8100cb8cff8ca2cc3b985ed46694"
+ "reference": "645819da9ef29f3ba7588d9b4598799caf0b2463"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/4f0bfd89e5ee8100cb8cff8ca2cc3b985ed46694",
- "reference": "4f0bfd89e5ee8100cb8cff8ca2cc3b985ed46694",
+ "url": "https://api.github.com/repos/mcamara/laravel-localization/zipball/645819da9ef29f3ba7588d9b4598799caf0b2463",
+ "reference": "645819da9ef29f3ba7588d9b4598799caf0b2463",
"shasum": ""
},
"require": {
@@ -2662,7 +2965,7 @@
],
"support": {
"issues": "https://github.com/mcamara/laravel-localization/issues",
- "source": "https://github.com/mcamara/laravel-localization/tree/1.6.1"
+ "source": "https://github.com/mcamara/laravel-localization/tree/1.6.2"
},
"funding": [
{
@@ -2674,7 +2977,7 @@
"type": "github"
}
],
- "time": "2020-10-01T07:45:06+00:00"
+ "time": "2021-10-24T11:55:35+00:00"
},
{
"name": "monolog/monolog",
@@ -3586,6 +3889,166 @@
},
"time": "2020-07-07T09:29:14+00:00"
},
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.3",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.2",
+ "psalm/phar": "^4.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
+ },
+ "time": "2021-10-19T17:43:47+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae",
+ "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*",
+ "psalm/phar": "^4.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1"
+ },
+ "time": "2021-10-02T14:08:47+00:00"
+ },
{
"name": "phpoption/phpoption",
"version": "1.8.0",
@@ -3844,6 +4307,55 @@
},
"time": "2019-03-20T16:42:58+00:00"
},
+ {
+ "name": "psr/cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
+ },
+ "time": "2021-02-03T23:26:27+00:00"
+ },
{
"name": "psr/container",
"version": "1.1.1",
@@ -4830,16 +5342,16 @@
},
{
"name": "swiftmailer/swiftmailer",
- "version": "v6.2.7",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "15f7faf8508e04471f666633addacf54c0ab5933"
+ "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933",
- "reference": "15f7faf8508e04471f666633addacf54c0ab5933",
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
+ "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
"shasum": ""
},
"require": {
@@ -4851,7 +5363,7 @@
},
"require-dev": {
"mockery/mockery": "^1.0",
- "symfony/phpunit-bridge": "^4.4|^5.0"
+ "symfony/phpunit-bridge": "^4.4|^5.4"
},
"suggest": {
"ext-intl": "Needed to support internationalized email addresses"
@@ -4889,7 +5401,7 @@
],
"support": {
"issues": "https://github.com/swiftmailer/swiftmailer/issues",
- "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.7"
+ "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
},
"funding": [
{
@@ -4901,20 +5413,20 @@
"type": "tidelift"
}
],
- "time": "2021-03-09T12:30:35+00:00"
+ "time": "2021-10-18T15:26:12+00:00"
},
{
"name": "symfony/console",
- "version": "v5.3.7",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a"
+ "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/8b1008344647462ae6ec57559da166c2bfa5e16a",
- "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a",
+ "url": "https://api.github.com/repos/symfony/console/zipball/d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
+ "reference": "d4e409d9fbcfbf71af0e5a940abb7b0b4bad0bd3",
"shasum": ""
},
"require": {
@@ -4984,7 +5496,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.3.7"
+ "source": "https://github.com/symfony/console/tree/v5.3.10"
},
"funding": [
{
@@ -5000,7 +5512,7 @@
"type": "tidelift"
}
],
- "time": "2021-08-25T20:02:16+00:00"
+ "time": "2021-10-26T09:30:15+00:00"
},
{
"name": "symfony/css-selector",
@@ -5431,16 +5943,16 @@
},
{
"name": "symfony/http-client",
- "version": "v5.3.8",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
- "reference": "c6370fe2c0a445aedc08f592a6a3149da1fea4c7"
+ "reference": "710b69ed4bc9469900ec5ae5c3807b0509bee0dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/c6370fe2c0a445aedc08f592a6a3149da1fea4c7",
- "reference": "c6370fe2c0a445aedc08f592a6a3149da1fea4c7",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/710b69ed4bc9469900ec5ae5c3807b0509bee0dc",
+ "reference": "710b69ed4bc9469900ec5ae5c3807b0509bee0dc",
"shasum": ""
},
"require": {
@@ -5498,7 +6010,7 @@
"description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-client/tree/v5.3.8"
+ "source": "https://github.com/symfony/http-client/tree/v5.3.10"
},
"funding": [
{
@@ -5514,7 +6026,7 @@
"type": "tidelift"
}
],
- "time": "2021-09-07T10:45:28+00:00"
+ "time": "2021-10-19T08:32:53+00:00"
},
{
"name": "symfony/http-client-contracts",
@@ -5596,16 +6108,16 @@
},
{
"name": "symfony/http-foundation",
- "version": "v5.3.7",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "e36c8e5502b4f3f0190c675f1c1f1248a64f04e5"
+ "reference": "9f34f02e8a5fdc7a56bafe011cea1ce97300e54c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e36c8e5502b4f3f0190c675f1c1f1248a64f04e5",
- "reference": "e36c8e5502b4f3f0190c675f1c1f1248a64f04e5",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9f34f02e8a5fdc7a56bafe011cea1ce97300e54c",
+ "reference": "9f34f02e8a5fdc7a56bafe011cea1ce97300e54c",
"shasum": ""
},
"require": {
@@ -5649,7 +6161,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.3.7"
+ "source": "https://github.com/symfony/http-foundation/tree/v5.3.10"
},
"funding": [
{
@@ -5665,20 +6177,20 @@
"type": "tidelift"
}
],
- "time": "2021-08-27T11:20:35+00:00"
+ "time": "2021-10-11T15:41:55+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v5.3.9",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "ceaf46a992f60e90645e7279825a830f733a17c5"
+ "reference": "703e4079920468e9522b72cf47fd76ce8d795e86"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ceaf46a992f60e90645e7279825a830f733a17c5",
- "reference": "ceaf46a992f60e90645e7279825a830f733a17c5",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/703e4079920468e9522b72cf47fd76ce8d795e86",
+ "reference": "703e4079920468e9522b72cf47fd76ce8d795e86",
"shasum": ""
},
"require": {
@@ -5761,7 +6273,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v5.3.9"
+ "source": "https://github.com/symfony/http-kernel/tree/v5.3.10"
},
"funding": [
{
@@ -5777,7 +6289,7 @@
"type": "tidelift"
}
],
- "time": "2021-09-28T10:25:11+00:00"
+ "time": "2021-10-29T08:36:48+00:00"
},
{
"name": "symfony/mime",
@@ -7139,16 +7651,16 @@
},
{
"name": "symfony/string",
- "version": "v5.3.7",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5"
+ "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/8d224396e28d30f81969f083a58763b8b9ceb0a5",
- "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5",
+ "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
+ "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c",
"shasum": ""
},
"require": {
@@ -7202,7 +7714,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.3.7"
+ "source": "https://github.com/symfony/string/tree/v5.3.10"
},
"funding": [
{
@@ -7218,20 +7730,20 @@
"type": "tidelift"
}
],
- "time": "2021-08-26T08:00:08+00:00"
+ "time": "2021-10-27T18:21:46+00:00"
},
{
"name": "symfony/translation",
- "version": "v5.3.9",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "6e69f3551c1a3356cf6ea8d019bf039a0f8b6886"
+ "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/6e69f3551c1a3356cf6ea8d019bf039a0f8b6886",
- "reference": "6e69f3551c1a3356cf6ea8d019bf039a0f8b6886",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/6ef197aea2ac8b9cd63e0da7522b3771714035aa",
+ "reference": "6ef197aea2ac8b9cd63e0da7522b3771714035aa",
"shasum": ""
},
"require": {
@@ -7297,7 +7809,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v5.3.9"
+ "source": "https://github.com/symfony/translation/tree/v5.3.10"
},
"funding": [
{
@@ -7313,7 +7825,7 @@
"type": "tidelift"
}
],
- "time": "2021-08-26T08:22:53+00:00"
+ "time": "2021-10-10T06:43:24+00:00"
},
{
"name": "symfony/translation-contracts",
@@ -7395,16 +7907,16 @@
},
{
"name": "symfony/var-dumper",
- "version": "v5.3.8",
+ "version": "v5.3.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da"
+ "reference": "875432adb5f5570fff21036fd22aee244636b7d1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eaaea4098be1c90c8285543e1356a09c8aa5c8da",
- "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/875432adb5f5570fff21036fd22aee244636b7d1",
+ "reference": "875432adb5f5570fff21036fd22aee244636b7d1",
"shasum": ""
},
"require": {
@@ -7463,7 +7975,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.3.8"
+ "source": "https://github.com/symfony/var-dumper/tree/v5.3.10"
},
"funding": [
{
@@ -7479,7 +7991,7 @@
"type": "tidelift"
}
],
- "time": "2021-09-24T15:59:58+00:00"
+ "time": "2021-10-26T09:30:15+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -7748,23 +8260,23 @@
"packages-dev": [
{
"name": "barryvdh/laravel-debugbar",
- "version": "v3.6.2",
+ "version": "v3.6.4",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git",
- "reference": "70b89754913fd89fef16d0170a91dbc2a5cd633a"
+ "reference": "3c2d678269ba60e178bcd93e36f6a91c36b727f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/70b89754913fd89fef16d0170a91dbc2a5cd633a",
- "reference": "70b89754913fd89fef16d0170a91dbc2a5cd633a",
+ "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/3c2d678269ba60e178bcd93e36f6a91c36b727f1",
+ "reference": "3c2d678269ba60e178bcd93e36f6a91c36b727f1",
"shasum": ""
},
"require": {
"illuminate/routing": "^6|^7|^8",
"illuminate/session": "^6|^7|^8",
"illuminate/support": "^6|^7|^8",
- "maximebf/debugbar": "^1.16.3",
+ "maximebf/debugbar": "^1.17.2",
"php": ">=7.2",
"symfony/debug": "^4.3|^5",
"symfony/finder": "^4.3|^5"
@@ -7778,7 +8290,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.5-dev"
+ "dev-master": "3.6-dev"
},
"laravel": {
"providers": [
@@ -7817,7 +8329,7 @@
],
"support": {
"issues": "https://github.com/barryvdh/laravel-debugbar/issues",
- "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.2"
+ "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.4"
},
"funding": [
{
@@ -7829,7 +8341,7 @@
"type": "github"
}
],
- "time": "2021-06-14T14:29:26+00:00"
+ "time": "2021-10-21T10:57:31+00:00"
},
{
"name": "doctrine/instantiator",
@@ -7967,16 +8479,16 @@
},
{
"name": "facade/ignition",
- "version": "2.15.0",
+ "version": "2.16.0",
"source": {
"type": "git",
"url": "https://github.com/facade/ignition.git",
- "reference": "3ee6e94815462bcf09bca0efc1c9069685df8da3"
+ "reference": "23400e6cc565c9dcae2c53704b4de1c4870c0697"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/facade/ignition/zipball/3ee6e94815462bcf09bca0efc1c9069685df8da3",
- "reference": "3ee6e94815462bcf09bca0efc1c9069685df8da3",
+ "url": "https://api.github.com/repos/facade/ignition/zipball/23400e6cc565c9dcae2c53704b4de1c4870c0697",
+ "reference": "23400e6cc565c9dcae2c53704b4de1c4870c0697",
"shasum": ""
},
"require": {
@@ -8040,7 +8552,7 @@
"issues": "https://github.com/facade/ignition/issues",
"source": "https://github.com/facade/ignition"
},
- "time": "2021-10-11T15:24:06+00:00"
+ "time": "2021-10-28T11:47:23+00:00"
},
{
"name": "facade/ignition-contracts",
@@ -8275,21 +8787,21 @@
},
{
"name": "maximebf/debugbar",
- "version": "v1.17.1",
+ "version": "v1.17.2",
"source": {
"type": "git",
"url": "https://github.com/maximebf/php-debugbar.git",
- "reference": "0a3532556be0145603f8a9de23e76dc28eed7054"
+ "reference": "3541f09f09c003c4a9ff7ddb0eb3361a7f14d418"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0a3532556be0145603f8a9de23e76dc28eed7054",
- "reference": "0a3532556be0145603f8a9de23e76dc28eed7054",
+ "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/3541f09f09c003c4a9ff7ddb0eb3361a7f14d418",
+ "reference": "3541f09f09c003c4a9ff7ddb0eb3361a7f14d418",
"shasum": ""
},
"require": {
"php": "^7.1|^8",
- "psr/log": "^1.0",
+ "psr/log": "^1|^2|^3",
"symfony/var-dumper": "^2.6|^3|^4|^5"
},
"require-dev": {
@@ -8334,9 +8846,9 @@
],
"support": {
"issues": "https://github.com/maximebf/php-debugbar/issues",
- "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.1"
+ "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.2"
},
- "time": "2021-08-01T09:19:02+00:00"
+ "time": "2021-10-18T09:39:00+00:00"
},
{
"name": "mockery/mockery",
@@ -8666,165 +9178,6 @@
},
"time": "2021-02-23T14:00:09+00:00"
},
- {
- "name": "phpdocumentor/reflection-common",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-2.x": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
- },
- "time": "2020-06-27T09:03:43+00:00"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "5.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
- "shasum": ""
- },
- "require": {
- "ext-filter": "*",
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.2",
- "phpdocumentor/type-resolver": "^1.3",
- "webmozart/assert": "^1.9.1"
- },
- "require-dev": {
- "mockery/mockery": "~1.3.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- },
- {
- "name": "Jaap van Otterdijk",
- "email": "account@ijaap.nl"
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master"
- },
- "time": "2020-09-03T19:13:55+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "1.5.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae",
- "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0"
- },
- "require-dev": {
- "ext-tokenizer": "*",
- "psalm/phar": "^4.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-1.x": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
- "support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.1"
- },
- "time": "2021-10-02T14:08:47+00:00"
- },
{
"name": "phpspec/prophecy",
"version": "1.14.0",
diff --git a/config/api.php b/config/api.php
new file mode 100644
index 0000000..d6e8836
--- /dev/null
+++ b/config/api.php
@@ -0,0 +1,232 @@
+ env('API_STANDARDS_TREE', 'x'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | API Subtype
+ |--------------------------------------------------------------------------
+ |
+ | Your subtype will follow the standards tree you use when used in the
+ | "Accept" header to negotiate the content type and version.
+ |
+ | For example: Accept: application/x.SUBTYPE.v1+json
+ |
+ */
+
+ 'subtype' => env('API_SUBTYPE', ''),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Default API Version
+ |--------------------------------------------------------------------------
+ |
+ | This is the default version when strict mode is disabled and your API
+ | is accessed via a web browser. It's also used as the default version
+ | when generating your APIs documentation.
+ |
+ */
+
+ 'version' => env('API_VERSION', 'v1'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Default API Prefix
+ |--------------------------------------------------------------------------
+ |
+ | A default prefix to use for your API routes so you don't have to
+ | specify it for each group.
+ |
+ */
+
+ 'prefix' => env('API_PREFIX', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Default API Domain
+ |--------------------------------------------------------------------------
+ |
+ | A default domain to use for your API routes so you don't have to
+ | specify it for each group.
+ |
+ */
+
+ 'domain' => env('API_DOMAIN', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Name
+ |--------------------------------------------------------------------------
+ |
+ | When documenting your API using the API Blueprint syntax you can
+ | configure a default name to avoid having to manually specify
+ | one when using the command.
+ |
+ */
+
+ 'name' => env('API_NAME', null),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Conditional Requests
+ |--------------------------------------------------------------------------
+ |
+ | Globally enable conditional requests so that an ETag header is added to
+ | any successful response. Subsequent requests will perform a check and
+ | will return a 304 Not Modified. This can also be enabled or disabled
+ | on certain groups or routes.
+ |
+ */
+
+ 'conditionalRequest' => env('API_CONDITIONAL_REQUEST', true),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Strict Mode
+ |--------------------------------------------------------------------------
+ |
+ | Enabling strict mode will require clients to send a valid Accept header
+ | with every request. This also voids the default API version, meaning
+ | your API will not be browsable via a web browser.
+ |
+ */
+
+ 'strict' => env('API_STRICT', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Debug Mode
+ |--------------------------------------------------------------------------
+ |
+ | Enabling debug mode will result in error responses caused by thrown
+ | exceptions to have a "debug" key that will be populated with
+ | more detailed information on the exception.
+ |
+ */
+
+ 'debug' => env('API_DEBUG', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Generic Error Format
+ |--------------------------------------------------------------------------
+ |
+ | When some HTTP exceptions are not caught and dealt with the API will
+ | generate a generic error response in the format provided. Any
+ | keys that aren't replaced with corresponding values will be
+ | removed from the final response.
+ |
+ */
+
+ 'errorFormat' => [
+ 'message' => ':message',
+ 'errors' => ':errors',
+ 'code' => ':code',
+ 'status_code' => ':status_code',
+ 'debug' => ':debug',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | API Middleware
+ |--------------------------------------------------------------------------
+ |
+ | Middleware that will be applied globally to all API requests.
+ |
+ */
+
+ 'middleware' => [
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Authentication Providers
+ |--------------------------------------------------------------------------
+ |
+ | The authentication providers that should be used when attempting to
+ | authenticate an incoming API request.
+ |
+ */
+
+ 'auth' => [
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Throttling / Rate Limiting
+ |--------------------------------------------------------------------------
+ |
+ | Consumers of your API can be limited to the amount of requests they can
+ | make. You can create your own throttles or simply change the default
+ | throttles.
+ |
+ */
+
+ 'throttling' => [
+
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Response Transformer
+ |--------------------------------------------------------------------------
+ |
+ | Responses can be transformed so that they are easier to format. By
+ | default a Fractal transformer will be used to transform any
+ | responses prior to formatting. You can easily replace
+ | this with your own transformer.
+ |
+ */
+
+ 'transformer' => env('API_TRANSFORMER', Dingo\Api\Transformer\Adapter\Fractal::class),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Response Formats
+ |--------------------------------------------------------------------------
+ |
+ | Responses can be returned in multiple formats by registering different
+ | response formatters. You can also customize an existing response
+ | formatter with a number of options to configure its output.
+ |
+ */
+
+ 'defaultFormat' => env('API_DEFAULT_FORMAT', 'json'),
+
+ 'formats' => [
+
+ 'json' => Dingo\Api\Http\Response\Format\Json::class,
+
+ ],
+
+ 'formatsOptions' => [
+
+ 'json' => [
+ 'pretty_print' => env('API_JSON_FORMAT_PRETTY_PRINT_ENABLED', false),
+ 'indent_style' => env('API_JSON_FORMAT_INDENT_STYLE', 'space'),
+ 'indent_size' => env('API_JSON_FORMAT_INDENT_SIZE', 2),
+ ],
+
+ ],
+
+];
diff --git a/routes/web.php b/routes/web.php
index f4e938e..54dbdc4 100755
--- a/routes/web.php
+++ b/routes/web.php
@@ -18,8 +18,6 @@
* You should have received a copy of the GNU General Public License
* along with Raspberry Staff Manager. If not, see .
*/
-
-use App\Http\Controllers\ApiKeyController;
use App\Http\Controllers\ApplicationController;
use App\Http\Controllers\AppointmentController;
use App\Http\Controllers\Auth\TwofaController;
@@ -42,6 +40,7 @@ use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Route;
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
+
/*
|--------------------------------------------------------------------------
| Web Routes