123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace App\Providers;
- use App\Avatar;
- use App\Follower;
- use App\HashtagFollow;
- use App\Like;
- use App\ModLog;
- use App\Notification;
- use App\Observers\AvatarObserver;
- use App\Observers\FollowerObserver;
- use App\Observers\HashtagFollowObserver;
- use App\Observers\LikeObserver;
- use App\Observers\ModLogObserver;
- use App\Observers\NotificationObserver;
- use App\Observers\ProfileObserver;
- use App\Observers\StatusHashtagObserver;
- use App\Observers\StatusObserver;
- use App\Observers\UserFilterObserver;
- use App\Observers\UserObserver;
- use App\Profile;
- use App\Services\AccountService;
- use App\Status;
- use App\StatusHashtag;
- use App\User;
- use App\UserFilter;
- use Auth;
- use Horizon;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Pagination\Paginator;
- use Illuminate\Support\Facades\Gate;
- use Illuminate\Cache\RateLimiting\Limit;
- use Illuminate\Support\Facades\RateLimiter;
- use Illuminate\Support\Facades\Schema;
- use Illuminate\Support\Facades\Validator;
- use Illuminate\Support\ServiceProvider;
- use Laravel\Pulse\Facades\Pulse;
- use Illuminate\Http\Request;
- use URL;
- class AppServiceProvider extends ServiceProvider
- {
- /**
- * Bootstrap any application services.
- *
- * @return void
- */
- public function boot()
- {
- if (config('instance.force_https_urls', true)) {
- URL::forceScheme('https');
- }
- Schema::defaultStringLength(191);
- Paginator::useBootstrap();
- Avatar::observe(AvatarObserver::class);
- Follower::observe(FollowerObserver::class);
- HashtagFollow::observe(HashtagFollowObserver::class);
- Like::observe(LikeObserver::class);
- Notification::observe(NotificationObserver::class);
- ModLog::observe(ModLogObserver::class);
- Profile::observe(ProfileObserver::class);
- StatusHashtag::observe(StatusHashtagObserver::class);
- User::observe(UserObserver::class);
- Status::observe(StatusObserver::class);
- UserFilter::observe(UserFilterObserver::class);
- Horizon::auth(function ($request) {
- return Auth::check() && $request->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(10)->by($request->ip());
- });
- RateLimiter::for('app-code-verify', function (Request $request) {
- return Limit::perHour(10)->by($request->ip());
- });
- RateLimiter::for('app-code-resend', function (Request $request) {
- return Limit::perHour(5)->by($request->ip());
- });
- // Model::preventLazyLoading(true);
- }
- /**
- * Register any application services.
- *
- * @return void
- */
- public function register()
- {
- //
- }
- }
|