| 
									
										
										
										
											2018-04-15 23:56:48 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace App\Providers; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; | 
					
						
							| 
									
										
										
										
											2018-12-31 04:30:57 +00:00
										 |  |  | use Laravel\Passport\Passport; | 
					
						
							| 
									
										
										
										
											2019-10-01 05:36:37 +00:00
										 |  |  | use Gate; | 
					
						
							| 
									
										
										
										
											2018-04-15 23:56:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class AuthServiceProvider extends ServiceProvider | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * The policy mappings for the application. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @var array | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     protected $policies = [ | 
					
						
							|  |  |  |         'App\Model' => 'App\Policies\ModelPolicy', | 
					
						
							|  |  |  |     ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Register any authentication / authorization services. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function boot() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->registerPolicies(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-18 01:45:23 +00:00
										 |  |  |         if(config('pixelfed.oauth_enabled')) { | 
					
						
							| 
									
										
										
										
											2020-06-12 00:39:03 +00:00
										 |  |  |             Passport::routes(null, ['middleware' => ['twofactor', \Fruitcake\Cors\HandleCors::class]]); | 
					
						
							| 
									
										
										
										
											2019-04-18 01:45:23 +00:00
										 |  |  |             Passport::tokensExpireIn(now()->addDays(15)); | 
					
						
							|  |  |  |             Passport::refreshTokensExpireIn(now()->addDays(30)); | 
					
						
							|  |  |  |             Passport::enableImplicitGrant(); | 
					
						
							| 
									
										
										
										
											2020-06-12 00:39:03 +00:00
										 |  |  |             if(config('instance.oauth.pat.enabled')) { | 
					
						
							|  |  |  |                 Passport::personalAccessClientId(config('instance.oauth.pat.id')); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2019-04-18 01:45:23 +00:00
										 |  |  |             Passport::setDefaultScope([ | 
					
						
							| 
									
										
										
										
											2019-09-14 01:55:24 +00:00
										 |  |  |                 'read', | 
					
						
							|  |  |  |                 'write', | 
					
						
							| 
									
										
										
										
											2019-09-14 02:17:00 +00:00
										 |  |  |                 'follow', | 
					
						
							| 
									
										
										
										
											2019-04-18 01:45:23 +00:00
										 |  |  |             ]); | 
					
						
							| 
									
										
										
										
											2019-04-08 07:30:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-18 01:45:23 +00:00
										 |  |  |             Passport::tokensCan([ | 
					
						
							| 
									
										
										
										
											2019-09-14 01:55:24 +00:00
										 |  |  |                 'read' => 'Full read access to your account', | 
					
						
							|  |  |  |                 'write' => 'Full write access to your account', | 
					
						
							| 
									
										
										
										
											2019-09-14 02:17:00 +00:00
										 |  |  |                 'follow' => 'Ability to follow other profiles', | 
					
						
							|  |  |  |                 'push'  => '' | 
					
						
							| 
									
										
										
										
											2019-04-18 01:45:23 +00:00
										 |  |  |             ]); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2019-09-14 01:55:24 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         Gate::define('viewWebSocketsDashboard', function ($user = null) { | 
					
						
							|  |  |  |             return $user->is_admin; | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2018-04-15 23:56:48 +00:00
										 |  |  |     } | 
					
						
							|  |  |  | } |