Files
BookStack/app/Users/Controllers/UserSearchController.php

78 lines
2.0 KiB
PHP
Raw Normal View History

2020-12-31 17:25:20 +00:00
<?php
2023-05-17 17:56:55 +01:00
namespace BookStack\Users\Controllers;
2020-12-31 17:25:20 +00:00
use BookStack\Http\Controller;
use BookStack\Permissions\Permission;
2023-05-17 17:56:55 +01:00
use BookStack\Users\Models\User;
use Illuminate\Database\Eloquent\Collection;
2020-12-31 17:25:20 +00:00
use Illuminate\Http\Request;
class UserSearchController extends Controller
{
/**
* Search users in the system, with the response formatted
* for use in a select-style list.
*/
public function forSelect(Request $request)
{
$hasPermission = !user()->isGuest() && (
userCan(Permission::UsersManage)
|| userCan(Permission::RestrictionsManageOwn)
|| userCan(Permission::RestrictionsManageAll)
);
if (!$hasPermission) {
$this->showPermissionError();
}
2020-12-31 17:25:20 +00:00
$search = $request->get('search', '');
$query = User::query()
->orderBy('name', 'asc')
2020-12-31 17:25:20 +00:00
->take(20);
if (!empty($search)) {
$query->where('name', 'like', '%' . $search . '%');
2020-12-31 17:25:20 +00:00
}
/** @var Collection<User> $users */
$users = $query->get();
return view('form.user-select-list', [
'users' => $users,
]);
}
/**
* Search users in the system, with the response formatted
* for use in a list of mentions.
*/
public function forMentions(Request $request)
{
$hasPermission = !user()->isGuest() && (
userCan(Permission::CommentCreateAll)
|| userCan(Permission::CommentUpdate)
);
if (!$hasPermission) {
$this->showPermissionError();
}
$search = $request->get('search', '');
$query = User::query()
->orderBy('name', 'asc')
->take(20);
if (!empty($search)) {
$query->where('name', 'like', '%' . $search . '%');
}
/** @var Collection<User> $users */
$users = $query->get();
return view('form.user-mention-list', [
'users' => $users,
]);
2020-12-31 17:25:20 +00:00
}
}