5 use BookStack\Users\Models\User;
8 class UserSearchTest extends TestCase
10 public function test_select_search_matches_by_name()
12 $viewer = $this->users->viewer();
13 $admin = $this->users->admin();
14 $resp = $this->actingAs($admin)->get('/search/users/select?search=' . urlencode($viewer->name));
17 $resp->assertSee($viewer->name);
18 $resp->assertDontSee($admin->name);
21 public function test_select_search_shows_first_by_name_without_search()
23 /** @var User $firstUser */
24 $firstUser = User::query()->orderBy('name', 'desc')->first();
25 $resp = $this->asAdmin()->get('/search/users/select');
28 $resp->assertSee($firstUser->name);
31 public function test_select_search_does_not_match_by_email()
33 $viewer = $this->users->viewer();
34 $editor = $this->users->editor();
35 $resp = $this->actingAs($editor)->get('/search/users/select?search=' . urlencode($viewer->email));
37 $resp->assertDontSee($viewer->name);
40 public function test_select_requires_right_permission()
42 $permissions = ['users-manage', 'restrictions-manage-own', 'restrictions-manage-all'];
43 $user = $this->users->viewer();
45 foreach ($permissions as $permission) {
46 $resp = $this->actingAs($user)->get('/search/users/select?search=a');
47 $this->assertPermissionError($resp);
49 $this->permissions->grantUserRolePermissions($user, [$permission]);
50 $resp = $this->actingAs($user)->get('/search/users/select?search=a');
52 $user->roles()->delete();
53 $user->clearPermissionCache();
57 public function test_select_requires_logged_in_user()
59 $this->setSettings(['app-public' => true]);
60 $this->permissions->grantUserRolePermissions($this->users->guest(), ['users-manage']);
62 $resp = $this->get('/search/users/select?search=a');
63 $this->assertPermissionError($resp);