| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-18 00:56:55 +08:00
										 |  |  | namespace BookStack\App\Providers; | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-18 00:56:55 +08:00
										 |  |  | use BookStack\Access\SocialAuthService; | 
					
						
							|  |  |  | use BookStack\Activity\Tools\ActivityLogger; | 
					
						
							| 
									
										
										
										
											2020-11-22 08:17:45 +08:00
										 |  |  | use BookStack\Entities\Models\Book; | 
					
						
							|  |  |  | use BookStack\Entities\Models\Bookshelf; | 
					
						
							|  |  |  | use BookStack\Entities\Models\Chapter; | 
					
						
							|  |  |  | use BookStack\Entities\Models\Page; | 
					
						
							| 
									
										
										
										
											2023-02-07 04:41:33 +08:00
										 |  |  | use BookStack\Exceptions\BookStackExceptionHandlerPage; | 
					
						
							| 
									
										
										
										
											2023-09-08 21:16:09 +08:00
										 |  |  | use BookStack\Http\HttpRequestService; | 
					
						
							| 
									
										
										
										
											2023-08-18 00:57:31 +08:00
										 |  |  | use BookStack\Permissions\PermissionApplicator; | 
					
						
							| 
									
										
										
										
											2018-09-25 23:58:03 +08:00
										 |  |  | use BookStack\Settings\SettingService; | 
					
						
							| 
									
										
										
										
											2021-09-04 20:57:04 +08:00
										 |  |  | use BookStack\Util\CspService; | 
					
						
							| 
									
										
										
										
											2023-02-07 04:41:33 +08:00
										 |  |  | use Illuminate\Contracts\Foundation\ExceptionRenderer; | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  | use Illuminate\Database\Eloquent\Relations\Relation; | 
					
						
							| 
									
										
										
										
											2021-09-26 22:48:22 +08:00
										 |  |  | use Illuminate\Support\Facades\Schema; | 
					
						
							|  |  |  | use Illuminate\Support\Facades\URL; | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | use Illuminate\Support\ServiceProvider; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class AppServiceProvider extends ServiceProvider | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2022-09-27 09:48:05 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Custom container bindings to register. | 
					
						
							|  |  |  |      * @var string[] | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $bindings = [ | 
					
						
							| 
									
										
										
										
											2023-02-07 04:41:33 +08:00
										 |  |  |         ExceptionRenderer::class => BookStackExceptionHandlerPage::class, | 
					
						
							| 
									
										
										
										
											2022-09-27 09:48:05 +08:00
										 |  |  |     ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Custom singleton bindings to register. | 
					
						
							|  |  |  |      * @var string[] | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public $singletons = [ | 
					
						
							|  |  |  |         'activity' => ActivityLogger::class, | 
					
						
							|  |  |  |         SettingService::class => SettingService::class, | 
					
						
							|  |  |  |         SocialAuthService::class => SocialAuthService::class, | 
					
						
							|  |  |  |         CspService::class => CspService::class, | 
					
						
							| 
									
										
										
										
											2023-09-08 21:16:09 +08:00
										 |  |  |         HttpRequestService::class => HttpRequestService::class, | 
					
						
							| 
									
										
										
										
											2022-09-27 09:48:05 +08:00
										 |  |  |     ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Bootstrap any application services. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function boot() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2019-08-04 21:26:39 +08:00
										 |  |  |         // Set root URL
 | 
					
						
							| 
									
										
										
										
											2019-09-01 19:07:51 +08:00
										 |  |  |         $appUrl = config('app.url'); | 
					
						
							|  |  |  |         if ($appUrl) { | 
					
						
							| 
									
										
										
										
											2023-09-08 21:16:09 +08:00
										 |  |  |             $isHttps = str_starts_with($appUrl, 'https://'); | 
					
						
							| 
									
										
										
										
											2019-09-01 19:07:51 +08:00
										 |  |  |             URL::forceRootUrl($appUrl); | 
					
						
							|  |  |  |             URL::forceScheme($isHttps ? 'https' : 'http'); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2019-08-04 21:26:39 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-03 00:20:05 +08:00
										 |  |  |         // Allow longer string lengths after upgrade to utf8mb4
 | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  |         Schema::defaultStringLength(191); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-26 01:31:37 +08:00
										 |  |  |         // Set morph-map for our relations to friendlier aliases
 | 
					
						
							|  |  |  |         Relation::enforceMorphMap([ | 
					
						
							|  |  |  |             'bookshelf' => Bookshelf::class, | 
					
						
							|  |  |  |             'book'      => Book::class, | 
					
						
							|  |  |  |             'chapter'   => Chapter::class, | 
					
						
							|  |  |  |             'page'      => Page::class, | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  |         ]); | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Register any application services. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function register() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2023-08-18 00:57:31 +08:00
										 |  |  |         $this->app->singleton(PermissionApplicator::class, function ($app) { | 
					
						
							|  |  |  |             return new PermissionApplicator(null); | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | } |