1
0
Files
TaskBoard/backend/api/user.php
Falknat 190b4d0a5e Большое обновление
1. Создание личных проектов
2. Управление командой
3. Приглашение участников
4. Уведомления

и многое другое...
2026-01-18 20:17:02 +07:00

97 lines
3.2 KiB
PHP

<?php
$method = $_SERVER['REQUEST_METHOD'];
if ($method === 'POST') {
$data = RestApi::getInput();
$action = $data['action'] ?? null;
// Авторизация
if ($action === 'auth_login') {
$account = new Account();
$result = $account->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 === '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]);
}
?>