This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@lendry-erp/contracts",
|
"name": "@lendry-erp/contracts",
|
||||||
"version": "1.2.15",
|
"version": "1.2.16",
|
||||||
"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",
|
||||||
|
|||||||
@@ -1,34 +1,34 @@
|
|||||||
syntax = "proto3";
|
syntax = "proto3";
|
||||||
|
|
||||||
package admin.account.v1;
|
package admin.v1;
|
||||||
|
|
||||||
option go_package = "git.lendry.ru/lendry-erp/proto.git/go;pb";
|
option go_package = "git.lendry.ru/lendry-erp/proto.git/go;pb";
|
||||||
|
|
||||||
service AdminAccountService {
|
// Единый сервис для всех административных операций
|
||||||
rpc AdminResetPassword (AdminResetPasswordRequest) returns (AdminResetPasswordResponse);
|
service AdminService {
|
||||||
|
// Управление учетными записями
|
||||||
rpc CreateUser(CreateUserRequest) returns (CreateUserResponse);
|
rpc CreateUser(CreateUserRequest) returns (CreateUserResponse);
|
||||||
rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse);
|
rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse);
|
||||||
|
rpc BlockUser(BlockUserRequest) returns (BlockUserResponse);
|
||||||
|
rpc UnblockUser(UnblockUserRequest) returns (UnblockUserResponse);
|
||||||
|
|
||||||
|
// Управление данными и безопасностью
|
||||||
rpc ChangeData(ChangeDataRequest) returns (ChangeDataResponse);
|
rpc ChangeData(ChangeDataRequest) returns (ChangeDataResponse);
|
||||||
|
rpc AdminResetPassword (AdminResetPasswordRequest) returns (AdminResetPasswordResponse);
|
||||||
|
|
||||||
|
// Управление ролями (RBAC)
|
||||||
rpc AssignRole (AssignRoleRequest) returns (AssignRoleResponse);
|
rpc AssignRole (AssignRoleRequest) returns (AssignRoleResponse);
|
||||||
rpc RevokeRole (RevokeRoleRequest) returns (RevokeRoleResponse);
|
rpc RevokeRole (RevokeRoleRequest) returns (RevokeRoleResponse);
|
||||||
|
|
||||||
rpc BlockUser(BlockUserRequest) returns (BlockUserResponse);
|
// Управление черным списком IP
|
||||||
rpc UnblockUser(UnblockUserRequest) returns (UnblockUserResponse);
|
|
||||||
rpc BlockIp(BlockIpRequest) returns (BlockIpResponse);
|
rpc BlockIp(BlockIpRequest) returns (BlockIpResponse);
|
||||||
rpc UnblockIp(UnblockIpRequest) returns (UnblockIpResponse);
|
rpc UnblockIp(UnblockIpRequest) returns (UnblockIpResponse);
|
||||||
|
|
||||||
|
// Синхронизация с поисковым движком (Elasticsearch)
|
||||||
rpc SyncUsersToSearch (SyncUsersToSearchRequest) returns (SyncUsersToSearchResponse);
|
rpc SyncUsersToSearch (SyncUsersToSearchRequest) returns (SyncUsersToSearchResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
message AdminResetPasswordRequest {
|
// --- DTO для управления учетными записями ---
|
||||||
string user_id = 1;
|
|
||||||
string new_password = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message AdminResetPasswordResponse {
|
|
||||||
bool success = 1;
|
|
||||||
string message = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message CreateUserRequest {
|
message CreateUserRequest {
|
||||||
string username = 1;
|
string username = 1;
|
||||||
@@ -50,6 +50,29 @@ message DeleteUserResponse {
|
|||||||
string message = 2;
|
string message = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message BlockUserRequest {
|
||||||
|
string user_id = 1; // Кого блокируем
|
||||||
|
string admin_id = 2; // Кто блокирует
|
||||||
|
optional string reason = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message BlockUserResponse {
|
||||||
|
bool success = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UnblockUserRequest {
|
||||||
|
string user_id = 1;
|
||||||
|
string admin_id = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message UnblockUserResponse {
|
||||||
|
bool success = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- DTO для управления данными и безопасностью ---
|
||||||
|
|
||||||
message ChangeDataRequest {
|
message ChangeDataRequest {
|
||||||
string user_id = 1;
|
string user_id = 1;
|
||||||
string session_id = 2;
|
string session_id = 2;
|
||||||
@@ -69,54 +92,68 @@ message ChangeDataResponse {
|
|||||||
string message = 2;
|
string message = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message AdminResetPasswordRequest {
|
||||||
|
string user_id = 1;
|
||||||
|
string new_password = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message AdminResetPasswordResponse {
|
||||||
|
bool success = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- DTO для управления ролями (RBAC) ---
|
||||||
|
|
||||||
message AssignRoleRequest {
|
message AssignRoleRequest {
|
||||||
string user_id = 1;
|
string user_id = 1;
|
||||||
string role_id = 2; // В gRPC передаем как string, внутри преобразуем в Int
|
string role_id = 2; // Передаем как string, внутри парсим в Int
|
||||||
}
|
}
|
||||||
|
|
||||||
message AssignRoleResponse {
|
message AssignRoleResponse {
|
||||||
bool success = 1;
|
bool success = 1;
|
||||||
string message = 2;
|
string message = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message RevokeRoleRequest {
|
message RevokeRoleRequest {
|
||||||
string user_id = 1;
|
string user_id = 1;
|
||||||
string role_id = 2;
|
string role_id = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message RevokeRoleResponse {
|
message RevokeRoleResponse {
|
||||||
bool success = 1;
|
bool success = 1;
|
||||||
string message = 2;
|
string message = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
message BlockUserRequest {
|
// --- DTO для управления черным списком IP ---
|
||||||
string user_id = 1; // Кого блокируем
|
|
||||||
string admin_id = 2; // Кто блокирует
|
|
||||||
optional string reason = 3;
|
|
||||||
}
|
|
||||||
message BlockUserResponse { bool success = 1; string message = 2; }
|
|
||||||
|
|
||||||
message UnblockUserRequest {
|
|
||||||
string user_id = 1;
|
|
||||||
string admin_id = 2;
|
|
||||||
}
|
|
||||||
message UnblockUserResponse { bool success = 1; string message = 2; }
|
|
||||||
|
|
||||||
message BlockIpRequest {
|
message BlockIpRequest {
|
||||||
string ip_address = 1;
|
string ip_address = 1;
|
||||||
string admin_id = 2;
|
string admin_id = 2;
|
||||||
optional string reason = 3;
|
optional string reason = 3;
|
||||||
}
|
}
|
||||||
message BlockIpResponse { bool success = 1; string message = 2; }
|
|
||||||
|
message BlockIpResponse {
|
||||||
|
bool success = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
|
|
||||||
message UnblockIpRequest {
|
message UnblockIpRequest {
|
||||||
string ip_address = 1;
|
string ip_address = 1;
|
||||||
string admin_id = 2;
|
string admin_id = 2;
|
||||||
}
|
}
|
||||||
message UnblockIpResponse { bool success = 1; string message = 2; }
|
|
||||||
|
message UnblockIpResponse {
|
||||||
|
bool success = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- DTO для синхронизации с поиском ---
|
||||||
|
|
||||||
message SyncUsersToSearchRequest {
|
message SyncUsersToSearchRequest {
|
||||||
// Можно оставить пустым, так как нам не нужны входные данные
|
// Пустой запрос, так как параметры не требуются
|
||||||
}
|
}
|
||||||
|
|
||||||
message SyncUsersToSearchResponse {
|
message SyncUsersToSearchResponse {
|
||||||
bool success = 1;
|
bool success = 1;
|
||||||
string message = 2;
|
string message = 2;
|
||||||
}
|
}
|
||||||
@@ -13,7 +13,11 @@ service AuthService {
|
|||||||
rpc LogoutOther (LogoutRequest) returns (LogoutResponse);
|
rpc LogoutOther (LogoutRequest) returns (LogoutResponse);
|
||||||
rpc GetSessions(GetSessionRequest) returns (GetSessionsResponse);
|
rpc GetSessions(GetSessionRequest) returns (GetSessionsResponse);
|
||||||
rpc TerminateSession(TerminateSessionRequest) returns (TerminateSessionResponse);
|
rpc TerminateSession(TerminateSessionRequest) returns (TerminateSessionResponse);
|
||||||
|
|
||||||
|
rpc SystemCreateAccount (SystemCreateAccountRequest) returns (SystemCreateAccountResponse);
|
||||||
|
rpc SystemChangeStatus (SystemChangeStatusRequest) returns (SystemChangeStatusResponse);
|
||||||
|
rpc SystemUpdatePassword (SystemUpdatePasswordRequest) returns (SystemUpdatePasswordResponse);
|
||||||
|
rpc SystemUpdatePin (SystemUpdatePinRequest) returns (SystemUpdatePinResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
message LoginRequest {
|
message LoginRequest {
|
||||||
@@ -101,4 +105,31 @@ message TerminateSessionResponse {
|
|||||||
string message = 2;
|
string message = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message SystemCreateAccountRequest {
|
||||||
|
string username = 1;
|
||||||
|
string password_hash = 2; // Хеш пароля генерирует Admin Service и передает сюда
|
||||||
|
bool is_ldap = 3;
|
||||||
|
}
|
||||||
|
message SystemCreateAccountResponse {
|
||||||
|
string account_id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SystemChangeStatusRequest {
|
||||||
|
string account_id = 1;
|
||||||
|
string status = 2; // 'ACTIVE', 'BLOCKED', 'DELETED'
|
||||||
|
}
|
||||||
|
message SystemChangeStatusResponse { bool success = 1; }
|
||||||
|
|
||||||
|
message SystemUpdatePasswordRequest {
|
||||||
|
string account_id = 1;
|
||||||
|
string new_password_hash = 2;
|
||||||
|
}
|
||||||
|
message SystemUpdatePasswordResponse { bool success = 1; }
|
||||||
|
|
||||||
|
message SystemUpdatePinRequest {
|
||||||
|
string account_id = 1;
|
||||||
|
optional string pin_hash = 2; // null если удаляем
|
||||||
|
}
|
||||||
|
|
||||||
|
message SystemUpdatePinResponse { bool success = 1; }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user