/
kev
/
Nextcloud_File-Changes-Tracker
Обзор
Документация
Войти
/
kev
/
Nextcloud_File-Changes-Tracker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
lib/Controller/SearchController.php
85 строк
2 KB
Evgeny Konovalov
first_commit
16 фев 2026, 17:45
16 фев 2026, 17:45
476f06c
Код
Авторство
О чём код?
<?php declare(strict_types=1); namespace OCA\FileChangesTracker\Controller; use OCP\AppFramework\Controller; use OCP\AppFramework\Http; use OCP\AppFramework\Http\JSONResponse; use OCP\IGroupManager; use OCP\IRequest; use OCP\IUserManager; /** * Контроллер для поиска пользователей и групп */ class SearchController extends Controller { private IUserManager $userManager; private IGroupManager $groupManager; public function __construct( string $appName, IRequest $request, IUserManager $userManager, IGroupManager $groupManager ) { parent::__construct($appName, $request); $this->userManager = $userManager; $this->groupManager = $groupManager; } /** * Поиск пользователей * * @NoAdminRequired */ public function users(): JSONResponse { try { $search = $this->request->getParam('search', ''); $limit = (int)$this->request->getParam('limit', 20); $users = $this->userManager->search($search, $limit); $results = []; foreach ($users as $user) { $results[] = [ 'id' => $user->getUID(), 'displayName' => $user->getDisplayName(), 'email' => $user->getEMailAddress(), ]; } return new JSONResponse(['data' => $results], Http::STATUS_OK); } catch (\Exception $e) { return new JSONResponse(['error' => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR); } } /** * Поиск групп * * @NoAdminRequired */ public function groups(): JSONResponse { try { $search = $this->request->getParam('search', ''); $limit = (int)$this->request->getParam('limit', 20); $groups = $this->groupManager->search($search, $limit); $results = []; foreach ($groups as $group) { $results[] = [ 'id' => $group->getGID(), 'displayName' => $group->getDisplayName(), 'userCount' => $group->count(), ]; } return new JSONResponse(['data' => $results], Http::STATUS_OK); } catch (\Exception $e) { return new JSONResponse(['error' => $e->getMessage()], Http::STATUS_INTERNAL_SERVER_ERROR); } } }