use BookStack\Auth\Access\UserInviteService;
use BookStack\Auth\Role;
use BookStack\Auth\User;
-use BookStack\Entities\Models\Page;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Mockery\MockInterface;
public function test_user_updating()
{
- $user = $this->getNormalUser();
+ $user = $this->users->viewer();
$password = $user->password;
$resp = $this->asAdmin()->get('/settings/users/' . $user->id);
public function test_user_password_update()
{
- $user = $this->getNormalUser();
+ $user = $this->users->viewer();
$userProfilePage = '/settings/users/' . $user->id;
$this->asAdmin()->get($userProfilePage);
public function test_delete()
{
- $editor = $this->getEditor();
+ $editor = $this->users->editor();
$resp = $this->asAdmin()->delete("settings/users/{$editor->id}");
$resp->assertRedirect('/settings/users');
$resp = $this->followRedirects($resp);
public function test_delete_offers_migrate_option()
{
- $editor = $this->getEditor();
+ $editor = $this->users->editor();
$resp = $this->asAdmin()->get("settings/users/{$editor->id}/delete");
$resp->assertSee('Migrate Ownership');
$resp->assertSee('new_owner_id');
public function test_migrate_option_hidden_if_user_cannot_manage_users()
{
- $editor = $this->getEditor();
+ $editor = $this->users->editor();
$resp = $this->asEditor()->get("settings/users/{$editor->id}/delete");
$resp->assertDontSee('Migrate Ownership');
$resp->assertDontSee('new_owner_id');
- $this->giveUserPermissions($editor, ['users-manage']);
+ $this->permissions->grantUserRolePermissions($editor, ['users-manage']);
$resp = $this->asEditor()->get("settings/users/{$editor->id}/delete");
$resp->assertSee('Migrate Ownership');
public function test_delete_with_new_owner_id_changes_ownership()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$owner = $page->ownedBy;
$newOwner = User::query()->where('id', '!=', $owner->id)->first();
]);
}
+ public function test_delete_removes_user_preferences()
+ {
+ $editor = $this->users->editor();
+ setting()->putUser($editor, 'dark-mode-enabled', 'true');
+
+ $this->assertDatabaseHas('settings', [
+ 'setting_key' => 'user:' . $editor->id . ':dark-mode-enabled',
+ 'value' => 'true',
+ ]);
+
+ $this->asAdmin()->delete("settings/users/{$editor->id}");
+
+ $this->assertDatabaseMissing('settings', [
+ 'setting_key' => 'user:' . $editor->id . ':dark-mode-enabled',
+ ]);
+ }
+
public function test_guest_profile_shows_limited_form()
{
$guest = User::getDefault();
public function test_user_create_update_fails_if_locale_is_invalid()
{
- $user = $this->getEditor();
+ $user = $this->users->editor();
// Too long
$resp = $this->asAdmin()->put($user->getEditUrl(), ['language' => 'this_is_too_long']);