Files
contracts/gen/ldap.ts
2026-04-01 09:12:45 +00:00

222 lines
6.9 KiB
TypeScript

// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.11.6
// protoc v3.21.12
// source: ldap.proto
/* eslint-disable */
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
import { Observable } from "rxjs";
export const protobufPackage = "ldap_service";
/**
* ==========================================
* БАЗОВЫЕ И ПЕРЕИСПОЛЬЗУЕМЫЕ СТРУКТУРЫ
* ==========================================
*/
export interface EmptyRequest {
}
/** Стандартный ответ для мутаций (создание, обновление, удаление) */
export interface StatusResponse {
success: boolean;
errorMessage: string;
}
/** Полная модель пользователя */
export interface UserData {
/** Полный путь в AD (Distinguished Name) */
dn: string;
/** Логин (sAMAccountName) */
username: string;
/** ФИО (displayName) */
displayName: string;
/** Почта (mail) */
email: string;
/** Описание/Должность (description) */
description: string;
/** Аватарка в байтах (thumbnailPhoto) */
avatar: Uint8Array;
/** Список групп */
groups: string[];
/** Статус аккаунта */
isActive: boolean;
}
/** Модель группы */
export interface GroupData {
dn: string;
/** Короткое имя группы (cn) */
name: string;
}
/** --- Авторизация --- */
export interface VerifyRequest {
username: string;
password: string;
}
export interface VerifyResponse {
success: boolean;
errorMessage: string;
/** Отдаем полные данные при успешном входе */
user: UserData | undefined;
}
/** --- Списки --- */
export interface UserListResponse {
success: boolean;
errorMessage: string;
users: UserData[];
}
export interface GroupListResponse {
success: boolean;
errorMessage: string;
groups: GroupData[];
}
/** --- Управление профилем --- */
export interface CreateUserRequest {
username: string;
fullName: string;
password: string;
/** Сразу при создании можно задать почту */
email?: string | undefined;
}
/** Запрос на обновление. Используем optional для частичного обновления. */
export interface UpdateUserRequest {
/** Обязательное поле: кого обновляем */
username: string;
/** Новое ФИО (повлечет Rename CN) */
displayName?:
| string
| undefined;
/** Новая почта */
email?:
| string
| undefined;
/** Новое описание */
description?:
| string
| undefined;
/** Новая аватарка (бинарник картинки) */
avatar?: Uint8Array | undefined;
}
export interface ChangePasswordRequest {
username: string;
newPassword: string;
}
export interface ToggleStatusRequest {
username: string;
/** true - включить (512), false - отключить (514) */
setActive: boolean;
}
/** --- Управление членством в группах --- */
export interface GroupMemberRequest {
/** Логин пользователя */
username: string;
/** Полный путь группы (в которую добавляем / из которой удаляем) */
groupDn: string;
}
export const LDAP_SERVICE_PACKAGE_NAME = "ldap_service";
/**
* ==========================================
* ГЛАВНЫЙ СЕРВИС
* ==========================================
*/
export interface LdapAuthClient {
/** --- Вектор 1: Авторизация (Bind от имени пользователя) --- */
verifyUser(request: VerifyRequest): Observable<VerifyResponse>;
/** --- Вектор 2: Управление Пользователями (Bind системного аккаунта) --- */
getUsers(request: EmptyRequest): Observable<UserListResponse>;
createUser(request: CreateUserRequest): Observable<StatusResponse>;
updateUser(request: UpdateUserRequest): Observable<StatusResponse>;
changePassword(request: ChangePasswordRequest): Observable<StatusResponse>;
toggleUserStatus(request: ToggleStatusRequest): Observable<StatusResponse>;
/** --- Вектор 3: Управление Группами --- */
getGroups(request: EmptyRequest): Observable<GroupListResponse>;
addUserToGroup(request: GroupMemberRequest): Observable<StatusResponse>;
removeUserFromGroup(request: GroupMemberRequest): Observable<StatusResponse>;
}
/**
* ==========================================
* ГЛАВНЫЙ СЕРВИС
* ==========================================
*/
export interface LdapAuthController {
/** --- Вектор 1: Авторизация (Bind от имени пользователя) --- */
verifyUser(request: VerifyRequest): Promise<VerifyResponse> | Observable<VerifyResponse> | VerifyResponse;
/** --- Вектор 2: Управление Пользователями (Bind системного аккаунта) --- */
getUsers(request: EmptyRequest): Promise<UserListResponse> | Observable<UserListResponse> | UserListResponse;
createUser(request: CreateUserRequest): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
updateUser(request: UpdateUserRequest): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
changePassword(request: ChangePasswordRequest): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
toggleUserStatus(request: ToggleStatusRequest): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
/** --- Вектор 3: Управление Группами --- */
getGroups(request: EmptyRequest): Promise<GroupListResponse> | Observable<GroupListResponse> | GroupListResponse;
addUserToGroup(request: GroupMemberRequest): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
removeUserFromGroup(
request: GroupMemberRequest,
): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
}
export function LdapAuthControllerMethods() {
return function (constructor: Function) {
const grpcMethods: string[] = [
"verifyUser",
"getUsers",
"createUser",
"updateUser",
"changePassword",
"toggleUserStatus",
"getGroups",
"addUserToGroup",
"removeUserFromGroup",
];
for (const method of grpcMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcMethod("LdapAuth", method)(constructor.prototype[method], method, descriptor);
}
const grpcStreamMethods: string[] = [];
for (const method of grpcStreamMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcStreamMethod("LdapAuth", method)(constructor.prototype[method], method, descriptor);
}
};
}
export const LDAP_AUTH_SERVICE_NAME = "LdapAuth";