// 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; /** --- Вектор 2: Управление Пользователями (Bind системного аккаунта) --- */ getUsers(request: EmptyRequest): Observable; createUser(request: CreateUserRequest): Observable; updateUser(request: UpdateUserRequest): Observable; changePassword(request: ChangePasswordRequest): Observable; toggleUserStatus(request: ToggleStatusRequest): Observable; /** --- Вектор 3: Управление Группами --- */ getGroups(request: EmptyRequest): Observable; addUserToGroup(request: GroupMemberRequest): Observable; removeUserFromGroup(request: GroupMemberRequest): Observable; } /** * ========================================== * ГЛАВНЫЙ СЕРВИС * ========================================== */ export interface LdapAuthController { /** --- Вектор 1: Авторизация (Bind от имени пользователя) --- */ verifyUser(request: VerifyRequest): Promise | Observable | VerifyResponse; /** --- Вектор 2: Управление Пользователями (Bind системного аккаунта) --- */ getUsers(request: EmptyRequest): Promise | Observable | UserListResponse; createUser(request: CreateUserRequest): Promise | Observable | StatusResponse; updateUser(request: UpdateUserRequest): Promise | Observable | StatusResponse; changePassword(request: ChangePasswordRequest): Promise | Observable | StatusResponse; toggleUserStatus(request: ToggleStatusRequest): Promise | Observable | StatusResponse; /** --- Вектор 3: Управление Группами --- */ getGroups(request: EmptyRequest): Promise | Observable | GroupListResponse; addUserToGroup(request: GroupMemberRequest): Promise | Observable | StatusResponse; removeUserFromGroup( request: GroupMemberRequest, ): Promise | Observable | 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";