artisan('db:seed', [ '--class' => Permissions::class, '--force' => true, ])->assertSuccessful(); config([ 'mail.from.address' => 'test@example.com', 'mail.from.name' => 'CaiWuXiTong Test', ]); Notification::fake(); $company = Installer::createCompany( '本地引导环境', 'local-bootstrap@caiwu.test', 'zh-CN' ); Installer::createUser( 'local-bootstrap@caiwu.test', 'temporary-test-secret', 'zh-CN', $company->id ); $user = user_model_class()::where('email', 'local-bootstrap@caiwu.test')->firstOrFail(); $role = $user->roles()->where('name', 'super_admin')->firstOrFail(); $this->assertTrue($role->hasPermission('read-admin-panel')); $this->assertTrue($role->hasPermission('create-common-companies')); $this->assertTrue($role->hasPermission('read-common-companies')); $this->assertTrue($role->hasPermission('read-common-dashboards')); $this->assertFalse($role->hasPermission('read-client-portal')); $this->assertTrue($user->companies()->whereKey($company->id)->exists()); $this->assertTrue($user->can('read-admin-panel')); $this->assertTrue($user->can('read-common-companies')); $this->assertTrue($user->hasPermission('read-admin-panel')); $this->assertTrue($user->hasPermission('read-common-companies')); $company->makeCurrent(); app('url')->defaults(['company_id' => $company->id]); config([ 'debugbar.enabled' => false, 'system_database.mode' => 'bootstrap', 'upstreams.stored_configuration.enabled' => false, ]); foreach (array_keys(config('firewall.middleware', [])) as $middleware) { config(["firewall.middleware.{$middleware}.enabled" => false]); } foreach ([ route('wizard.edit'), route('dashboard'), route('system-settings.databases.index'), ] as $url) { $response = $this->actingAs($user)->get($url); $this->assertNotSame( 403, $response->getStatusCode(), $url . ' 不应返回 403:' . mb_substr(strip_tags($response->getContent()), 0, 500) ); } } }