diff --git a/app/Http/Controllers/API/UserController.php b/app/Http/Controllers/API/UserController.php index 13e4823..5471a8f 100644 --- a/app/Http/Controllers/API/UserController.php +++ b/app/Http/Controllers/API/UserController.php @@ -94,10 +94,10 @@ class UserController extends BaseController $invite = Invite::query()->where("code", "=", $request->input("invite"))->first(); if($invite != null) { if($invite->status != "active") { - throw new HTTPException("Invite code invalide"); + throw new HTTPException(400, "Invite code invalide"); } if(!empty($invite->username) && $request->input("username") != $invite->username) { - throw new HTTPException("Invalide username for invite"); + throw new HTTPException(400, "Invalide username for invite"); } } else { diff --git a/app/Http/Controllers/API/oAuthController.php b/app/Http/Controllers/API/oAuthController.php index e09c390..e877525 100644 --- a/app/Http/Controllers/API/oAuthController.php +++ b/app/Http/Controllers/API/oAuthController.php @@ -6,6 +6,7 @@ use App\Entity\Token; use App\Exceptions\HTTPException; use App\Exceptions\NotLoggedInException; use App\Exceptions\ResourceNotFound; +use App\Http\Resources\API\AppAccessDetails; use App\Models\AccessToken; use App\Models\App; use App\Models\AppAccess; @@ -102,4 +103,19 @@ class oAuthController extends BaseController return $response->withData($res); } -} \ No newline at end of file + public function listAccess(Response $response) { + if(!Auth::check()) { + abort(401); + } + + $access = AppAccess::query()->where("user_id", "=", Auth::user()->id)->get(); + $visibleAccess = []; + foreach($access as $a) { + if(!$a->getApp()->hidden_in_app_list) { + $visibleAccess[] = $a; + } + } + + return $response->withData(AppAccessDetails::collection(collect($visibleAccess))); + } +} diff --git a/app/Http/Controllers/GUI/AccessController.php b/app/Http/Controllers/GUI/AccessController.php index a811052..d51ea83 100644 --- a/app/Http/Controllers/GUI/AccessController.php +++ b/app/Http/Controllers/GUI/AccessController.php @@ -69,4 +69,4 @@ class AccessController extends Controller return redirect("/gui/access"); } -} \ No newline at end of file +} diff --git a/app/Http/Resources/API/AppAccessDetails.php b/app/Http/Resources/API/AppAccessDetails.php new file mode 100644 index 0000000..0dc0b8c --- /dev/null +++ b/app/Http/Resources/API/AppAccessDetails.php @@ -0,0 +1,25 @@ +getApp(); + return [ + 'app' => new App($app), + 'status' => $this->status, + 'created' => $this->created_at->format('Y-m-d H:i:s e'), + 'updated' => $this->created_at->format('Y-m-d H:i:s e') + ]; + } +} diff --git a/routes/web.php b/routes/web.php index 1521cd2..b67fc7f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -60,6 +60,9 @@ $router->group(['prefix' => 'api'], function () use ($router) { $router->post("/changeImage", ["uses" => "API\AppController@changeImage"]); }); }); + $router->group(["prefix" => "access"], function () use ($router) { + $router->get("", ["uses" => "API\oAuthController@listAccess"]); + }); $router->group(['prefix' => 'account'], function () use ($router) { $router->get("/", ['uses' => 'API\AccountController@getUsers']); $router->get("/{id}", ['uses' => 'API\AccountController@getUser']);