This commit is contained in:
102
proto/ldap.proto
102
proto/ldap.proto
@@ -4,10 +4,60 @@ package ldap_service;
|
||||
|
||||
option go_package = "git.lendry.ru/lendry-erp/contracts.git/gen/go;ldap_service";
|
||||
|
||||
// ==========================================
|
||||
// ГЛАВНЫЙ СЕРВИС
|
||||
// ==========================================
|
||||
service LdapAuth {
|
||||
rpc VerifyUser (VerifyRequest) returns (VerifyResponse);
|
||||
// --- Вектор 1: Авторизация (Bind от имени пользователя) ---
|
||||
rpc VerifyUser (VerifyRequest) returns (VerifyResponse);
|
||||
|
||||
// --- Вектор 2: Управление Пользователями (Bind системного аккаунта) ---
|
||||
rpc GetUsers (EmptyRequest) returns (UserListResponse);
|
||||
rpc CreateUser (CreateUserRequest) returns (StatusResponse);
|
||||
rpc UpdateUser (UpdateUserRequest) returns (StatusResponse);
|
||||
rpc ChangePassword (ChangePasswordRequest) returns (StatusResponse);
|
||||
rpc ToggleUserStatus (ToggleStatusRequest) returns (StatusResponse);
|
||||
|
||||
// --- Вектор 3: Управление Группами ---
|
||||
rpc GetGroups (EmptyRequest) returns (GroupListResponse);
|
||||
rpc AddUserToGroup (GroupMemberRequest) returns (StatusResponse);
|
||||
rpc RemoveUserFromGroup (GroupMemberRequest) returns (StatusResponse);
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// БАЗОВЫЕ И ПЕРЕИСПОЛЬЗУЕМЫЕ СТРУКТУРЫ
|
||||
// ==========================================
|
||||
message EmptyRequest {}
|
||||
|
||||
// Стандартный ответ для мутаций (создание, обновление, удаление)
|
||||
message StatusResponse {
|
||||
bool success = 1;
|
||||
string error_message = 2;
|
||||
}
|
||||
|
||||
// Полная модель пользователя
|
||||
message UserData {
|
||||
string dn = 1; // Полный путь в AD (Distinguished Name)
|
||||
string username = 2; // Логин (sAMAccountName)
|
||||
string display_name = 3; // ФИО (displayName)
|
||||
string email = 4; // Почта (mail)
|
||||
string description = 5; // Описание/Должность (description)
|
||||
bytes avatar = 6; // Аватарка в байтах (thumbnailPhoto)
|
||||
repeated string groups = 7; // Список групп
|
||||
bool is_active = 8; // Статус аккаунта
|
||||
}
|
||||
|
||||
// Модель группы
|
||||
message GroupData {
|
||||
string dn = 1;
|
||||
string name = 2; // Короткое имя группы (cn)
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// ЗАПРОСЫ И ОТВЕТЫ (REQUESTS / RESPONSES)
|
||||
// ==========================================
|
||||
|
||||
// --- Авторизация ---
|
||||
message VerifyRequest {
|
||||
string username = 1;
|
||||
string password = 2;
|
||||
@@ -16,13 +66,51 @@ message VerifyRequest {
|
||||
message VerifyResponse {
|
||||
bool success = 1;
|
||||
string error_message = 2;
|
||||
UserData user = 3;
|
||||
UserData user = 3; // Отдаем полные данные при успешном входе
|
||||
}
|
||||
|
||||
message UserData {
|
||||
string dn = 1;
|
||||
string display_name = 2;
|
||||
repeated string groups = 3;
|
||||
bool is_active = 4;
|
||||
// --- Списки ---
|
||||
message UserListResponse {
|
||||
bool success = 1;
|
||||
string error_message = 2;
|
||||
repeated UserData users = 3;
|
||||
}
|
||||
|
||||
message GroupListResponse {
|
||||
bool success = 1;
|
||||
string error_message = 2;
|
||||
repeated GroupData groups = 3;
|
||||
}
|
||||
|
||||
// --- Управление профилем ---
|
||||
message CreateUserRequest {
|
||||
string username = 1;
|
||||
string full_name = 2;
|
||||
string password = 3;
|
||||
optional string email = 4; // Сразу при создании можно задать почту
|
||||
}
|
||||
|
||||
// Запрос на обновление. Используем optional для частичного обновления.
|
||||
message UpdateUserRequest {
|
||||
string username = 1; // Обязательное поле: кого обновляем
|
||||
optional string display_name = 2; // Новое ФИО (повлечет Rename CN)
|
||||
optional string email = 3; // Новая почта
|
||||
optional string description = 4; // Новое описание
|
||||
optional bytes avatar = 5; // Новая аватарка (бинарник картинки)
|
||||
}
|
||||
|
||||
message ChangePasswordRequest {
|
||||
string username = 1;
|
||||
string new_password = 2;
|
||||
}
|
||||
|
||||
message ToggleStatusRequest {
|
||||
string username = 1;
|
||||
bool set_active = 2; // true - включить (512), false - отключить (514)
|
||||
}
|
||||
|
||||
// --- Управление членством в группах ---
|
||||
message GroupMemberRequest {
|
||||
string username = 1; // Логин пользователя
|
||||
string group_dn = 2; // Полный путь группы (в которую добавляем / из которой удаляем)
|
||||
}
|
||||
Reference in New Issue
Block a user