<?php
namespace App\Providers;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
\App\Mailbox::observe(\App\Observers\MailboxObserver::class);
\App\Email::observe(\App\Observers\EmailObserver::class);
\App\User::observe(\App\Observers\UserObserver::class);
\App\Conversation::observe(\App\Observers\ConversationObserver::class);
\App\Customer::observe(\App\Observers\CustomerObserver::class);
\App\Thread::observe(\App\Observers\ThreadObserver::class);
\App\Attachment::observe(\App\Observers\AttachmentObserver::class);
\App\Follower::observe(\App\Observers\FollowerObserver::class);
\Illuminate\Notifications\DatabaseNotification::observe(\App\Observers\DatabaseNotificationObserver::class);
\Validator::extend('safehost', function ($attribute, $value, $parameters, $validator) {
if (!$value) {
return true;
}
$msg = '';
try {
$url = $value;
if (!preg_match("#^https?://#", $value)) {
$url = 'https://'.$url;
}
\Helper::sanitizeRemoteUrl($url, true);
} catch (\Exception $e) {
$msg = $e->getMessage();
}
if ($msg) {
$validator->errors()->add($attribute, $msg);
return false;
}
return true;
});
}
* Register any application services.
*
* @return void
*/
public function register()
{
if (\Helper::isHttps()) {
$this->app['url']->forceScheme('https');
}
if (!\Config::get('app.key') && !app()->runningInConsole() && !file_exists(storage_path('.installed'))) {
redirect(\Helper::getSubdirectory().'/install.php')->send();
}
\Eventy::addFilter('modules.register_error', function ($exception, $module) {
$msg = __('The :module_name module has been deactivated due to an error: :error_message', ['module_name' => $module->getName(), 'error_message' => $exception->getMessage()]);
\Log::error($msg);
if (!empty($_POST['action']) && $_POST['action'] == 'activate') {
\App\Module::deactiveModule($module->getAlias());
\Session::flash('flashes_floating', [[
'text' => $msg,
'type' => 'danger',
'role' => \App\User::ROLE_ADMIN,
]]);
return;
} elseif (empty($_POST)) {
if (strstr($exception->getMessage(), 'No such file or directory')) {
\App\Module::deactiveModule($module->getAlias());
\Session::flash('flashes_floating', [[
'text' => $msg,
'type' => 'danger',
'role' => \App\User::ROLE_ADMIN,
]]);
}
return;
}
return $exception;
}, 10, 2);
}
}