Compare commits
11 Commits
86d15e4055
...
v1.0.20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0713605442 | ||
|
|
156a747f59 | ||
|
|
ff14fded40 | ||
|
|
7f07e83065 | ||
|
|
b5d2f846ee | ||
|
|
b4ff48f512 | ||
|
|
55fad6f1b2 | ||
|
|
ea99c4c89a | ||
|
|
0e8da180ca | ||
|
|
b98bdddb66 | ||
|
|
f5b566676c |
@@ -221,7 +221,7 @@ const file_ldap_proto_rawDesc = "" +
|
|||||||
"\tis_active\x18\x04 \x01(\bR\bisActive2S\n" +
|
"\tis_active\x18\x04 \x01(\bR\bisActive2S\n" +
|
||||||
"\bLdapAuth\x12G\n" +
|
"\bLdapAuth\x12G\n" +
|
||||||
"\n" +
|
"\n" +
|
||||||
"VerifyUser\x12\x1b.ldap_service.VerifyRequest\x1a\x1c.ldap_service.VerifyResponseB+Z)git.lendry.ru/lendry-erp/gen;ldap_serviceb\x06proto3"
|
"VerifyUser\x12\x1b.ldap_service.VerifyRequest\x1a\x1c.ldap_service.VerifyResponseB<Z:git.lendry.ru/lendry-erp/contracts.git/gen/go;ldap_serviceb\x06proto3"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
file_ldap_proto_rawDescOnce sync.Once
|
file_ldap_proto_rawDescOnce sync.Once
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -1,3 +1,3 @@
|
|||||||
module git.lendry.ru/lendry-erp/proto
|
module git.lendry.ru/lendry-erp/contracts.git
|
||||||
|
|
||||||
go 1.26.1
|
go 1.26.1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lendry-erp/contracts",
|
"name": "@lendry-erp/contracts",
|
||||||
"version": "1.0.12",
|
"version": "1.0.20",
|
||||||
"description": "Protobuf definitions and generated TypeScript types",
|
"description": "Protobuf definitions and generated TypeScript types",
|
||||||
"type": "commonjs",
|
"type": "commonjs",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ syntax = "proto3";
|
|||||||
|
|
||||||
package identity;
|
package identity;
|
||||||
|
|
||||||
option go_package = './gen';
|
option go_package = "./gen";
|
||||||
|
|
||||||
service AuthService {
|
service AuthService {
|
||||||
rpc Login (LoginRequest) returns (LoginResponse);
|
rpc Login (LoginRequest) returns (LoginResponse);
|
||||||
|
|||||||
104
proto/ldap.proto
104
proto/ldap.proto
@@ -2,12 +2,62 @@ syntax = "proto3";
|
|||||||
|
|
||||||
package ldap_service;
|
package ldap_service;
|
||||||
|
|
||||||
option go_package = "git.lendry.ru/lendry-erp/gen;ldap_service";
|
option go_package = "git.lendry.ru/lendry-erp/contracts.git/gen/go;ldap_service";
|
||||||
|
|
||||||
|
// ==========================================
|
||||||
|
// ГЛАВНЫЙ СЕРВИС
|
||||||
|
// ==========================================
|
||||||
service LdapAuth {
|
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 {
|
message VerifyRequest {
|
||||||
string username = 1;
|
string username = 1;
|
||||||
string password = 2;
|
string password = 2;
|
||||||
@@ -16,13 +66,51 @@ message VerifyRequest {
|
|||||||
message VerifyResponse {
|
message VerifyResponse {
|
||||||
bool success = 1;
|
bool success = 1;
|
||||||
string error_message = 2;
|
string error_message = 2;
|
||||||
UserData user = 3;
|
UserData user = 3; // Отдаем полные данные при успешном входе
|
||||||
}
|
}
|
||||||
|
|
||||||
message UserData {
|
// --- Списки ---
|
||||||
string dn = 1;
|
message UserListResponse {
|
||||||
string display_name = 2;
|
bool success = 1;
|
||||||
repeated string groups = 3;
|
string error_message = 2;
|
||||||
bool is_active = 4;
|
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