222 lines
6.9 KiB
TypeScript
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";
|