user()->is_admin; }); Validator::includeUnvalidatedArrayKeys(); Gate::define('viewPulse', function (User $user) { return $user->is_admin === 1; }); if (config('pulse.enabled', false)) { Pulse::user(function ($user) { $acct = AccountService::get($user->profile_id, true); return $acct ? [ 'name' => $acct['username'], 'extra' => $user->email, 'avatar' => $acct['avatar'], ] : [ 'name' => $user->username, 'extra' => 'DELETED', 'avatar' => '/storage/avatars/default.jpg', ]; }); } RateLimiter::for('app-signup', function (Request $request) { return Limit::perDay(100)->by($request->ip()); }); RateLimiter::for('app-code-verify', function (Request $request) { return Limit::perHour(20)->by($request->ip()); }); RateLimiter::for('app-code-resend', function (Request $request) { return Limit::perHour(10)->by($request->ip()); }); RateLimiter::for('account-lookup', function (Request $request) { return Limit::perDay(50)->by($request->ip()); }); Passport::useTokenModel(OAuthToken::class); Passport::tokensExpireIn(now()->addDays(config('instance.oauth.token_expiration', 356))); Passport::refreshTokensExpireIn(now()->addDays(config('instance.oauth.refresh_expiration', 400))); Passport::enableImplicitGrant(); if (config('instance.oauth.pat.enabled')) { Passport::personalAccessClientId(config('instance.oauth.pat.id')); } Passport::tokensCan([ 'read' => 'Full read access to your account', 'write' => 'Full write access to your account', 'follow' => 'Ability to follow other profiles', 'admin:read' => 'Read all data on the server', 'admin:read:domain_blocks' => 'Read sensitive information of all domain blocks', 'admin:write' => 'Modify all data on the server', 'admin:write:domain_blocks' => 'Perform moderation actions on domain blocks', 'push' => 'Receive your push notifications', ]); Passport::setDefaultScope([ 'read', 'write', 'follow', ]); // Model::preventLazyLoading(true); } /** * Register any application services. * * @return void */ public function register() { Passport::ignoreRoutes(); $this->app->bind(UserOidcService::class, function () { return UserOidcService::build(); }); } }