1. Создание личных проектов 2. Управление командой 3. Приглашение участников 4. Уведомления и многое другое...
97 lines
3.2 KiB
PHP
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]);
|
|
}
|
|
|
|
|
|
?>
|