Lint PHP code psr-12, add GH action
This commit is contained in:
@@ -10,7 +10,6 @@ class AcceptsJsonMiddleware
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
|
||||
@@ -8,7 +8,7 @@ use Tymon\JWTAuth\Exceptions\JWTException;
|
||||
|
||||
class AuthenticateJWT
|
||||
{
|
||||
const API_SERVER_SECRET_HEADER_NAME = 'x-api-secret';
|
||||
public const API_SERVER_SECRET_HEADER_NAME = 'x-api-secret';
|
||||
|
||||
/**
|
||||
* Verifies the JWT token and validates the IP and User Agent
|
||||
@@ -33,18 +33,19 @@ class AuthenticateJWT
|
||||
}
|
||||
|
||||
$error = null;
|
||||
if (!\Hash::check($request->ip(), $payload->get('ip'))) {
|
||||
if (! \Hash::check($request->ip(), $payload->get('ip'))) {
|
||||
$error = 'Origin IP is invalid';
|
||||
}
|
||||
|
||||
if (!\Hash::check($request->userAgent(), $payload->get('ua'))) {
|
||||
if (! \Hash::check($request->userAgent(), $payload->get('ua'))) {
|
||||
$error = 'Origin User Agent is invalid';
|
||||
}
|
||||
|
||||
if ($error) {
|
||||
auth()->invalidate();
|
||||
|
||||
return response()->json([
|
||||
'message' => $error
|
||||
'message' => $error,
|
||||
], 403);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,14 +12,14 @@ class CaddyRequestMiddleware
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if (!config('custom-domains.enabled')) {
|
||||
if (! config('custom-domains.enabled')) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Custom domains not enabled',
|
||||
], 401);
|
||||
}
|
||||
|
||||
if (config('custom-domains.enabled') && !in_array($request->ip(), config('custom-domains.authorized_ips'))) {
|
||||
if (config('custom-domains.enabled') && ! in_array($request->ip(), config('custom-domains.authorized_ips'))) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Unauthorized IP',
|
||||
@@ -27,7 +27,7 @@ class CaddyRequestMiddleware
|
||||
}
|
||||
|
||||
$secret = $request->route('secret');
|
||||
if (config('custom-domains.caddy_secret') && (!$secret || $secret !== config('custom-domains.caddy_secret'))) {
|
||||
if (config('custom-domains.caddy_secret') && (! $secret || $secret !== config('custom-domains.caddy_secret'))) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Unauthorized',
|
||||
|
||||
@@ -6,24 +6,24 @@ use App\Http\Requests\Workspace\CustomDomainRequest;
|
||||
use App\Models\Forms\Form;
|
||||
use App\Models\Workspace;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CustomDomainRestriction
|
||||
{
|
||||
const CUSTOM_DOMAIN_HEADER = "x-custom-domain";
|
||||
public const CUSTOM_DOMAIN_HEADER = 'x-custom-domain';
|
||||
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if (!$request->hasHeader(self::CUSTOM_DOMAIN_HEADER) || !config('custom-domains.enabled')) {
|
||||
if (! $request->hasHeader(self::CUSTOM_DOMAIN_HEADER) || ! config('custom-domains.enabled')) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
$customDomain = $request->header(self::CUSTOM_DOMAIN_HEADER);
|
||||
if (!preg_match(CustomDomainRequest::CUSTOM_DOMAINS_REGEX, $customDomain)) {
|
||||
if (! preg_match(CustomDomainRequest::CUSTOM_DOMAINS_REGEX, $customDomain)) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Invalid domain',
|
||||
@@ -38,7 +38,7 @@ class CustomDomainRestriction
|
||||
}
|
||||
|
||||
// Check if domain is known
|
||||
if (!$workspaces = Workspace::whereJsonContains('custom_domains',$customDomain)->get()) {
|
||||
if (! $workspaces = Workspace::whereJsonContains('custom_domains', $customDomain)->get()) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Unknown domain',
|
||||
|
||||
@@ -11,7 +11,6 @@ class ProForm
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
@@ -22,6 +21,7 @@ class ProForm
|
||||
$request->merge([
|
||||
'form' => $form,
|
||||
]);
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,27 +9,26 @@ use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class ProtectedForm
|
||||
{
|
||||
const PASSWORD_HEADER_NAME = 'form-password';
|
||||
public const PASSWORD_HEADER_NAME = 'form-password';
|
||||
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if (!$request->route('slug')) {
|
||||
if (! $request->route('slug')) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
$form = Form::where('slug',$request->route('slug'))->firstOrFail();
|
||||
$form = Form::where('slug', $request->route('slug'))->firstOrFail();
|
||||
$request->merge([
|
||||
'form' => $form,
|
||||
]);
|
||||
$userIsFormOwner = Auth::check() && Auth::user()->ownsForm($form);
|
||||
if (!$userIsFormOwner && $this->isProtected($request, $form)) {
|
||||
if (! $userIsFormOwner && $this->isProtected($request, $form)) {
|
||||
return response([
|
||||
'status' => 'Unauthorized',
|
||||
'message' => 'Form is protected.',
|
||||
@@ -41,11 +40,11 @@ class ProtectedForm
|
||||
|
||||
public static function isProtected(Request $request, Form $form)
|
||||
{
|
||||
if (!$form->has_password) {
|
||||
if (! $form->has_password) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return !self::hasCorrectPassword($request, $form);
|
||||
return ! self::hasCorrectPassword($request, $form);
|
||||
}
|
||||
|
||||
public static function hasCorrectPassword(Request $request, Form $form)
|
||||
|
||||
@@ -11,16 +11,16 @@ class ResolveFormMiddleware
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function handle(Request $request, Closure $next, string $routeParamName = "id")
|
||||
{
|
||||
$form = Form::where($routeParamName,$request->route($routeParamName))->firstOrFail();
|
||||
public function handle(Request $request, Closure $next, string $routeParamName = 'id')
|
||||
{
|
||||
$form = Form::where($routeParamName, $request->route($routeParamName))->firstOrFail();
|
||||
$request->merge([
|
||||
'form' => $form,
|
||||
]);
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,14 +9,15 @@ use Tymon\JWTAuth\Exceptions\JWTException;
|
||||
class ImpersonationMiddleware
|
||||
{
|
||||
public const ADMIN_LOG_PREFIX = '[admin_action] ';
|
||||
const LOG_ROUTES = [
|
||||
|
||||
public const LOG_ROUTES = [
|
||||
'open.forms.store',
|
||||
'open.forms.update',
|
||||
'open.forms.duplicate',
|
||||
'open.forms.regenerate-link',
|
||||
];
|
||||
|
||||
const ALLOWED_ROUTES = [
|
||||
public const ALLOWED_ROUTES = [
|
||||
'logout',
|
||||
|
||||
// Forms
|
||||
@@ -59,14 +60,13 @@ class ImpersonationMiddleware
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
try {
|
||||
if (!auth()->check() || !auth()->payload()->get('impersonating')) {
|
||||
if (! auth()->check() || ! auth()->payload()->get('impersonating')) {
|
||||
return $next($request);
|
||||
}
|
||||
} catch (JWTException $e) {
|
||||
@@ -75,22 +75,22 @@ class ImpersonationMiddleware
|
||||
|
||||
// Check that route is allowed
|
||||
$routeName = $request->route()->getName();
|
||||
if (!in_array($routeName, self::ALLOWED_ROUTES)) {
|
||||
if (! in_array($routeName, self::ALLOWED_ROUTES)) {
|
||||
return response([
|
||||
'message' => 'Unauthorized when impersonating',
|
||||
'route' => $routeName,
|
||||
'impersonator' => auth()->payload()->get('impersonator_id'),
|
||||
'impersonated_account' => auth()->id(),
|
||||
'url' => $request->fullUrl(),
|
||||
'payload' => $request->all()
|
||||
'payload' => $request->all(),
|
||||
], 403);
|
||||
} else if (in_array($routeName, self::LOG_ROUTES)) {
|
||||
\Log::warning(self::ADMIN_LOG_PREFIX . 'Impersonator action', [
|
||||
} elseif (in_array($routeName, self::LOG_ROUTES)) {
|
||||
\Log::warning(self::ADMIN_LOG_PREFIX.'Impersonator action', [
|
||||
'route' => $routeName,
|
||||
'url' => $request->fullUrl(),
|
||||
'impersonated_account' => auth()->id(),
|
||||
'impersonator' => auth()->payload()->get('impersonator_id'),
|
||||
'payload' => $request->all()
|
||||
'payload' => $request->all(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,11 @@ class IsAdmin
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if ($request->user() && !$request->user()->admin) {
|
||||
if ($request->user() && ! $request->user()->admin) {
|
||||
// This user is not a paying customer...
|
||||
if ($request->expectsJson()) {
|
||||
return response([
|
||||
@@ -24,6 +22,7 @@ class IsAdmin
|
||||
'type' => 'error',
|
||||
], 403);
|
||||
}
|
||||
|
||||
return redirect('home');
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,11 @@ class IsModerator
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if ($request->user() && !$request->user()->moderator) {
|
||||
if ($request->user() && ! $request->user()->moderator) {
|
||||
// This user is not a paying customer...
|
||||
if ($request->expectsJson()) {
|
||||
return response([
|
||||
@@ -24,6 +22,7 @@ class IsModerator
|
||||
'type' => 'error',
|
||||
], 403);
|
||||
}
|
||||
|
||||
return redirect('home');
|
||||
}
|
||||
|
||||
|
||||
@@ -10,8 +10,6 @@ class IsNotSubscribed
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
@@ -24,6 +22,7 @@ class IsNotSubscribed
|
||||
'type' => 'error',
|
||||
], 401);
|
||||
}
|
||||
|
||||
return redirect('billing');
|
||||
}
|
||||
|
||||
|
||||
@@ -10,13 +10,11 @@ class IsSubscribed
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if ($request->user() && !$request->user()->subscribed()) {
|
||||
if ($request->user() && ! $request->user()->subscribed()) {
|
||||
// This user is not a paying customer...
|
||||
if ($request->expectsJson()) {
|
||||
return response([
|
||||
@@ -24,6 +22,7 @@ class IsSubscribed
|
||||
'type' => 'error',
|
||||
], 401);
|
||||
}
|
||||
|
||||
return redirect('billing');
|
||||
}
|
||||
|
||||
|
||||
@@ -12,8 +12,6 @@ class RedirectIfAuthenticated
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @param string|null ...$guards
|
||||
* @return mixed
|
||||
*/
|
||||
|
||||
@@ -10,7 +10,6 @@ class SetLocale
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request, Closure $next)
|
||||
@@ -23,7 +22,7 @@ class SetLocale
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return string|null
|
||||
*/
|
||||
protected function parseLocale($request)
|
||||
|
||||
@@ -18,10 +18,11 @@ class TrimStrings extends Middleware
|
||||
|
||||
/**
|
||||
* The route name where this shouldn't be applied
|
||||
*
|
||||
* @var string[]
|
||||
*/
|
||||
protected $exceptUrls = [
|
||||
'/\/api\/forms\/(.*)\/answer/'
|
||||
'/\/api\/forms\/(.*)\/answer/',
|
||||
];
|
||||
|
||||
public function handle($request, \Closure $next)
|
||||
|
||||
@@ -14,6 +14,6 @@ class VerifyCsrfToken extends Middleware
|
||||
protected $except = [
|
||||
'stripe/webhook',
|
||||
'vapor/signed-storage-url',
|
||||
'upload-file'
|
||||
'upload-file',
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user