58 lines
No EOL
1.4 KiB
PHP
58 lines
No EOL
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
use App\Entity\Token;
|
|
use App\Exceptions\HTTPException;
|
|
use App\Exceptions\NotLoggedInException;
|
|
use App\Exceptions\ResourceNotFound;
|
|
use App\Models\AccessToken;
|
|
use App\Models\App;
|
|
use App\Models\AppAccess;
|
|
use App\Models\AppCode;
|
|
use App\Models\RefreshToken;
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Log;
|
|
use TaGeSo\APIResponse\Response;
|
|
|
|
class oAuthController extends Controller
|
|
{
|
|
/**
|
|
* Create a new controller instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct()
|
|
{
|
|
//
|
|
}
|
|
|
|
public function getAccess(Response $response, Request $request, $id) {
|
|
if(!Auth::check()) {
|
|
throw new NotLoggedInException();
|
|
}
|
|
|
|
$app = App::query()->where("id", "=", $id);
|
|
|
|
if($request->get("create", false)) {
|
|
$access = AppAccess::getOrCreate(Auth::user()->id, $id);
|
|
} else {
|
|
$access = AppAccess::query()
|
|
->where("user_id", "=", Auth::user()->id)
|
|
->where("app_id", "=", $id)->first();
|
|
}
|
|
|
|
if(empty($access)) {
|
|
throw new ResourceNotFound();
|
|
}
|
|
|
|
//Auto Allow
|
|
if($app->auto_accept) {
|
|
$access->status = "allowed";
|
|
}
|
|
|
|
return $response->withData(new \App\Http\Resources\API\App($access));
|
|
}
|
|
} |