create_session( $data['username'] ?? null, $data['password'] ?? null ); RestApi::response($result); } // Проверка сессии if ($action === 'check_session') { $account = new Account(); $keycookies = $data['keycookies'] ?? $_COOKIE['session'] ?? null; $result = $account->check_session($keycookies); RestApi::response($result); } // Выход (только текущая сессия) if ($action === 'logout') { $account = new Account(); $keycookies = $data['keycookies'] ?? $_COOKIE['session'] ?? null; $result = $account->logout($keycookies); RestApi::response($result); } // Выход со всех устройств if ($action === 'logout_all') { $account = new Account(); $keycookies = $data['keycookies'] ?? $_COOKIE['session'] ?? null; $result = $account->logout_all($keycookies); RestApi::response($result); } // Создание пользователя if ($action === 'create_user') { $account = new Account(); $account->name = $data['name'] ?? null; $account->username = $data['username'] ?? null; $account->password = $data['password'] ?? null; $account->id_department = $data['id_department'] ?? null; $account->avatar_url = $data['avatar_url'] ?? null; $account->telegram = $data['telegram'] ?? null; $result = $account->create(); RestApi::response($result); } // Поиск пользователя по логину if ($action === 'search') { $current_user_id = RestApi::getCurrentUserId(); $username = trim($data['username'] ?? ''); if (!$username) { RestApi::response(['success' => false, 'errors' => ['username' => 'Введите логин']], 400); } // Ищем пользователя по username $user = Database::get('accounts', ['id', 'name', 'username', 'avatar_url'], [ 'username' => $username ]); if (!$user) { RestApi::response(['success' => false, 'errors' => ['username' => 'Пользователь не найден']]); } RestApi::response(['success' => true, 'data' => $user]); } // Проверяем, что метод не пустой if (!$action) { RestApi::response(['success' => false, 'error' => 'Укажите метод'], 400); } } if ($method === 'GET') { // Получение участников проекта // ?id_project=X (обязательный) $current_user_id = RestApi::getCurrentUserId(); $id_project = $_GET['id_project'] ?? null; if (!$id_project) { RestApi::response(['success' => false, 'errors' => ['id_project' => 'Проект не указан']], 400); } // Проверяем доступ к проекту ProjectAccess::requireAccess((int)$id_project, $current_user_id); // Получаем участников проекта $members = ProjectAccess::getMembers((int)$id_project); RestApi::response(['success' => true, 'data' => $members]); } ?>