22 Commits

Author SHA1 Message Date
github-actions[bot]
678ac4f22b chore: auto-generate protobuf files [skip ci] 2026-04-02 12:23:16 +00:00
Дмитрий
dbf71f91ef add support metadata from grpc typescript
All checks were successful
Publish / Publish Job (push) Successful in 2m36s
2026-04-02 15:20:42 +03:00
github-actions[bot]
ae192553a0 chore: auto-generate protobuf files [skip ci] 2026-04-02 10:34:18 +00:00
Дмитрий
76ded73e40 add requres pin
All checks were successful
Publish / Publish Job (push) Successful in 2m35s
2026-04-02 13:31:43 +03:00
github-actions[bot]
bd7fb33d1e chore: auto-generate protobuf files [skip ci] 2026-04-02 08:56:34 +00:00
Дмитрий
f6237eeb86 add logout_all methods
All checks were successful
Publish / Publish Job (push) Successful in 2m36s
2026-04-02 11:53:59 +03:00
github-actions[bot]
a4a5190dce chore: auto-generate protobuf files [skip ci] 2026-04-01 16:11:13 +00:00
Дмитрий
216c49a338 add check role level for ierarchy
All checks were successful
Publish / Publish Job (push) Successful in 2m32s
2026-04-01 19:08:39 +03:00
Дмитрий
e79f7183da change commit
All checks were successful
Publish / Publish Job (push) Successful in 2m29s
2026-04-01 18:03:49 +03:00
github-actions[bot]
f972282031 chore: auto-generate protobuf files [skip ci] 2026-04-01 14:28:08 +00:00
Дмитрий
be3d0ea089 add verify sessions requests
All checks were successful
Publish / Publish Job (push) Successful in 2m50s
2026-04-01 17:25:15 +03:00
github-actions[bot]
0534ae4340 chore: auto-generate protobuf files [skip ci] 2026-04-01 09:30:59 +00:00
Дмитрий
d4b32ad655 fix: change go package proto link
All checks were successful
Publish / Publish Job (push) Successful in 2m29s
2026-04-01 12:28:30 +03:00
github-actions[bot]
352b63c60c chore: auto-generate protobuf files [skip ci] 2026-04-01 09:12:45 +00:00
Дмитрий
0713605442 update: ldap.proto
All checks were successful
Publish / Publish Job (push) Successful in 2m27s
2026-04-01 12:10:00 +03:00
Дмитрий
156a747f59 fix: change version and go.mod file
All checks were successful
Publish / Publish Job (push) Successful in 2m27s
2026-04-01 11:08:41 +03:00
Дмитрий
ff14fded40 fix: change version
All checks were successful
Publish / Publish Job (push) Successful in 2m32s
2026-04-01 10:50:42 +03:00
github-actions[bot]
7f07e83065 chore: auto-generate protobuf files [skip ci] 2026-04-01 07:38:33 +00:00
Дмитрий
b5d2f846ee change: change go_packege ldap-service
Some checks failed
Publish / Publish Job (push) Failing after 2m27s
2026-04-01 10:36:07 +03:00
github-actions[bot]
b4ff48f512 chore: auto-generate protobuf files [skip ci] 2026-03-30 16:54:45 +00:00
Дмитрий
55fad6f1b2 fix: fix go_package
All checks were successful
Publish / Publish Job (push) Successful in 2m29s
2026-03-30 19:52:10 +03:00
github-actions[bot]
ea99c4c89a chore: auto-generate protobuf files [skip ci] 2026-03-30 16:08:03 +00:00
12 changed files with 2049 additions and 255 deletions

View File

@@ -50,7 +50,7 @@ jobs:
npm install -g ts-proto npm install -g ts-proto
mkdir -p ./gen/go # Создаем вложенную папку для Go mkdir -p ./gen/go # Создаем вложенную папку для Go
protoc -I ./proto ./proto/*.proto \ protoc -I ./proto ./proto/*.proto \
--ts_proto_out=nestJs=true,package=omit:./gen \ --ts_proto_out=nestJs=true,addGrpcMetadata=true,package=omit:./gen \
--go_out=paths=source_relative:./gen/go \ --go_out=paths=source_relative:./gen/go \
--go-grpc_out=paths=source_relative:./gen/go --go-grpc_out=paths=source_relative:./gen/go

View File

@@ -4,7 +4,7 @@
// protoc v3.21.12 // protoc v3.21.12
// source: identity.proto // source: identity.proto
package gen package pb
import ( import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoreflect "google.golang.org/protobuf/reflect/protoreflect"
@@ -357,6 +357,246 @@ func (x *LogoutResponse) GetMessage() string {
return "" return ""
} }
type VerifyTokenRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VerifyTokenRequest) Reset() {
*x = VerifyTokenRequest{}
mi := &file_identity_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VerifyTokenRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VerifyTokenRequest) ProtoMessage() {}
func (x *VerifyTokenRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VerifyTokenRequest.ProtoReflect.Descriptor instead.
func (*VerifyTokenRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{6}
}
func (x *VerifyTokenRequest) GetToken() string {
if x != nil {
return x.Token
}
return ""
}
type VerifyTokenResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
IsValid bool `protobuf:"varint,1,opt,name=is_valid,json=isValid,proto3" json:"is_valid,omitempty"`
ErrorMessage *string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3,oneof" json:"error_message,omitempty"`
Id *string `protobuf:"bytes,3,opt,name=id,proto3,oneof" json:"id,omitempty"`
Username *string `protobuf:"bytes,4,opt,name=username,proto3,oneof" json:"username,omitempty"`
RoleLevel *int32 `protobuf:"varint,5,opt,name=role_level,json=roleLevel,proto3,oneof" json:"role_level,omitempty"`
Permissions []string `protobuf:"bytes,6,rep,name=permissions,proto3" json:"permissions,omitempty"`
SessionId *string `protobuf:"bytes,7,opt,name=session_id,json=sessionId,proto3,oneof" json:"session_id,omitempty"`
RequiresPin *bool `protobuf:"varint,8,opt,name=requires_pin,json=requiresPin,proto3,oneof" json:"requires_pin,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VerifyTokenResponse) Reset() {
*x = VerifyTokenResponse{}
mi := &file_identity_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VerifyTokenResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VerifyTokenResponse) ProtoMessage() {}
func (x *VerifyTokenResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VerifyTokenResponse.ProtoReflect.Descriptor instead.
func (*VerifyTokenResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{7}
}
func (x *VerifyTokenResponse) GetIsValid() bool {
if x != nil {
return x.IsValid
}
return false
}
func (x *VerifyTokenResponse) GetErrorMessage() string {
if x != nil && x.ErrorMessage != nil {
return *x.ErrorMessage
}
return ""
}
func (x *VerifyTokenResponse) GetId() string {
if x != nil && x.Id != nil {
return *x.Id
}
return ""
}
func (x *VerifyTokenResponse) GetUsername() string {
if x != nil && x.Username != nil {
return *x.Username
}
return ""
}
func (x *VerifyTokenResponse) GetRoleLevel() int32 {
if x != nil && x.RoleLevel != nil {
return *x.RoleLevel
}
return 0
}
func (x *VerifyTokenResponse) GetPermissions() []string {
if x != nil {
return x.Permissions
}
return nil
}
func (x *VerifyTokenResponse) GetSessionId() string {
if x != nil && x.SessionId != nil {
return *x.SessionId
}
return ""
}
func (x *VerifyTokenResponse) GetRequiresPin() bool {
if x != nil && x.RequiresPin != nil {
return *x.RequiresPin
}
return false
}
type GetAccountRoleLevelRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetAccountRoleLevelRequest) Reset() {
*x = GetAccountRoleLevelRequest{}
mi := &file_identity_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetAccountRoleLevelRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetAccountRoleLevelRequest) ProtoMessage() {}
func (x *GetAccountRoleLevelRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetAccountRoleLevelRequest.ProtoReflect.Descriptor instead.
func (*GetAccountRoleLevelRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{8}
}
func (x *GetAccountRoleLevelRequest) GetAccountId() string {
if x != nil {
return x.AccountId
}
return ""
}
type GetAccountRoleLevelResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Found bool `protobuf:"varint,1,opt,name=found,proto3" json:"found,omitempty"`
RoleLevel int32 `protobuf:"varint,2,opt,name=role_level,json=roleLevel,proto3" json:"role_level,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetAccountRoleLevelResponse) Reset() {
*x = GetAccountRoleLevelResponse{}
mi := &file_identity_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GetAccountRoleLevelResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetAccountRoleLevelResponse) ProtoMessage() {}
func (x *GetAccountRoleLevelResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetAccountRoleLevelResponse.ProtoReflect.Descriptor instead.
func (*GetAccountRoleLevelResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{9}
}
func (x *GetAccountRoleLevelResponse) GetFound() bool {
if x != nil {
return x.Found
}
return false
}
func (x *GetAccountRoleLevelResponse) GetRoleLevel() int32 {
if x != nil {
return x.RoleLevel
}
return 0
}
type UnlockPinRequest struct { type UnlockPinRequest struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
@@ -367,7 +607,7 @@ type UnlockPinRequest struct {
func (x *UnlockPinRequest) Reset() { func (x *UnlockPinRequest) Reset() {
*x = UnlockPinRequest{} *x = UnlockPinRequest{}
mi := &file_identity_proto_msgTypes[6] mi := &file_identity_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -379,7 +619,7 @@ func (x *UnlockPinRequest) String() string {
func (*UnlockPinRequest) ProtoMessage() {} func (*UnlockPinRequest) ProtoMessage() {}
func (x *UnlockPinRequest) ProtoReflect() protoreflect.Message { func (x *UnlockPinRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[6] mi := &file_identity_proto_msgTypes[10]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -392,7 +632,7 @@ func (x *UnlockPinRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use UnlockPinRequest.ProtoReflect.Descriptor instead. // Deprecated: Use UnlockPinRequest.ProtoReflect.Descriptor instead.
func (*UnlockPinRequest) Descriptor() ([]byte, []int) { func (*UnlockPinRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{6} return file_identity_proto_rawDescGZIP(), []int{10}
} }
func (x *UnlockPinRequest) GetAccessToken() string { func (x *UnlockPinRequest) GetAccessToken() string {
@@ -419,7 +659,7 @@ type UnlockPinResponse struct {
func (x *UnlockPinResponse) Reset() { func (x *UnlockPinResponse) Reset() {
*x = UnlockPinResponse{} *x = UnlockPinResponse{}
mi := &file_identity_proto_msgTypes[7] mi := &file_identity_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -431,7 +671,7 @@ func (x *UnlockPinResponse) String() string {
func (*UnlockPinResponse) ProtoMessage() {} func (*UnlockPinResponse) ProtoMessage() {}
func (x *UnlockPinResponse) ProtoReflect() protoreflect.Message { func (x *UnlockPinResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[7] mi := &file_identity_proto_msgTypes[11]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -444,7 +684,7 @@ func (x *UnlockPinResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use UnlockPinResponse.ProtoReflect.Descriptor instead. // Deprecated: Use UnlockPinResponse.ProtoReflect.Descriptor instead.
func (*UnlockPinResponse) Descriptor() ([]byte, []int) { func (*UnlockPinResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{7} return file_identity_proto_rawDescGZIP(), []int{11}
} }
func (x *UnlockPinResponse) GetSuccess() bool { func (x *UnlockPinResponse) GetSuccess() bool {
@@ -472,7 +712,7 @@ type Verify2FaRequest struct {
func (x *Verify2FaRequest) Reset() { func (x *Verify2FaRequest) Reset() {
*x = Verify2FaRequest{} *x = Verify2FaRequest{}
mi := &file_identity_proto_msgTypes[8] mi := &file_identity_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -484,7 +724,7 @@ func (x *Verify2FaRequest) String() string {
func (*Verify2FaRequest) ProtoMessage() {} func (*Verify2FaRequest) ProtoMessage() {}
func (x *Verify2FaRequest) ProtoReflect() protoreflect.Message { func (x *Verify2FaRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[8] mi := &file_identity_proto_msgTypes[12]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -497,7 +737,7 @@ func (x *Verify2FaRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use Verify2FaRequest.ProtoReflect.Descriptor instead. // Deprecated: Use Verify2FaRequest.ProtoReflect.Descriptor instead.
func (*Verify2FaRequest) Descriptor() ([]byte, []int) { func (*Verify2FaRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{8} return file_identity_proto_rawDescGZIP(), []int{12}
} }
func (x *Verify2FaRequest) GetTempToken() string { func (x *Verify2FaRequest) GetTempToken() string {
@@ -534,7 +774,7 @@ type Verify2FaResponse struct {
func (x *Verify2FaResponse) Reset() { func (x *Verify2FaResponse) Reset() {
*x = Verify2FaResponse{} *x = Verify2FaResponse{}
mi := &file_identity_proto_msgTypes[9] mi := &file_identity_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -546,7 +786,7 @@ func (x *Verify2FaResponse) String() string {
func (*Verify2FaResponse) ProtoMessage() {} func (*Verify2FaResponse) ProtoMessage() {}
func (x *Verify2FaResponse) ProtoReflect() protoreflect.Message { func (x *Verify2FaResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[9] mi := &file_identity_proto_msgTypes[13]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -559,7 +799,7 @@ func (x *Verify2FaResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use Verify2FaResponse.ProtoReflect.Descriptor instead. // Deprecated: Use Verify2FaResponse.ProtoReflect.Descriptor instead.
func (*Verify2FaResponse) Descriptor() ([]byte, []int) { func (*Verify2FaResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{9} return file_identity_proto_rawDescGZIP(), []int{13}
} }
func (x *Verify2FaResponse) GetAccessToken() string { func (x *Verify2FaResponse) GetAccessToken() string {
@@ -606,7 +846,7 @@ type AuthenticatedAccessRequest struct {
func (x *AuthenticatedAccessRequest) Reset() { func (x *AuthenticatedAccessRequest) Reset() {
*x = AuthenticatedAccessRequest{} *x = AuthenticatedAccessRequest{}
mi := &file_identity_proto_msgTypes[10] mi := &file_identity_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -618,7 +858,7 @@ func (x *AuthenticatedAccessRequest) String() string {
func (*AuthenticatedAccessRequest) ProtoMessage() {} func (*AuthenticatedAccessRequest) ProtoMessage() {}
func (x *AuthenticatedAccessRequest) ProtoReflect() protoreflect.Message { func (x *AuthenticatedAccessRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[10] mi := &file_identity_proto_msgTypes[14]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -631,7 +871,7 @@ func (x *AuthenticatedAccessRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use AuthenticatedAccessRequest.ProtoReflect.Descriptor instead. // Deprecated: Use AuthenticatedAccessRequest.ProtoReflect.Descriptor instead.
func (*AuthenticatedAccessRequest) Descriptor() ([]byte, []int) { func (*AuthenticatedAccessRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{10} return file_identity_proto_rawDescGZIP(), []int{14}
} }
func (x *AuthenticatedAccessRequest) GetAccessToken() string { func (x *AuthenticatedAccessRequest) GetAccessToken() string {
@@ -650,7 +890,7 @@ type GetTwoFaStatusRequest struct {
func (x *GetTwoFaStatusRequest) Reset() { func (x *GetTwoFaStatusRequest) Reset() {
*x = GetTwoFaStatusRequest{} *x = GetTwoFaStatusRequest{}
mi := &file_identity_proto_msgTypes[11] mi := &file_identity_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -662,7 +902,7 @@ func (x *GetTwoFaStatusRequest) String() string {
func (*GetTwoFaStatusRequest) ProtoMessage() {} func (*GetTwoFaStatusRequest) ProtoMessage() {}
func (x *GetTwoFaStatusRequest) ProtoReflect() protoreflect.Message { func (x *GetTwoFaStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[11] mi := &file_identity_proto_msgTypes[15]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -675,7 +915,7 @@ func (x *GetTwoFaStatusRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetTwoFaStatusRequest.ProtoReflect.Descriptor instead. // Deprecated: Use GetTwoFaStatusRequest.ProtoReflect.Descriptor instead.
func (*GetTwoFaStatusRequest) Descriptor() ([]byte, []int) { func (*GetTwoFaStatusRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{11} return file_identity_proto_rawDescGZIP(), []int{15}
} }
func (x *GetTwoFaStatusRequest) GetAccessToken() string { func (x *GetTwoFaStatusRequest) GetAccessToken() string {
@@ -697,7 +937,7 @@ type GetTwoFaStatusResponse struct {
func (x *GetTwoFaStatusResponse) Reset() { func (x *GetTwoFaStatusResponse) Reset() {
*x = GetTwoFaStatusResponse{} *x = GetTwoFaStatusResponse{}
mi := &file_identity_proto_msgTypes[12] mi := &file_identity_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -709,7 +949,7 @@ func (x *GetTwoFaStatusResponse) String() string {
func (*GetTwoFaStatusResponse) ProtoMessage() {} func (*GetTwoFaStatusResponse) ProtoMessage() {}
func (x *GetTwoFaStatusResponse) ProtoReflect() protoreflect.Message { func (x *GetTwoFaStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[12] mi := &file_identity_proto_msgTypes[16]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -722,7 +962,7 @@ func (x *GetTwoFaStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetTwoFaStatusResponse.ProtoReflect.Descriptor instead. // Deprecated: Use GetTwoFaStatusResponse.ProtoReflect.Descriptor instead.
func (*GetTwoFaStatusResponse) Descriptor() ([]byte, []int) { func (*GetTwoFaStatusResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{12} return file_identity_proto_rawDescGZIP(), []int{16}
} }
func (x *GetTwoFaStatusResponse) GetTotpEnabled() bool { func (x *GetTwoFaStatusResponse) GetTotpEnabled() bool {
@@ -765,7 +1005,7 @@ type StartTotpEnrollmentResponse struct {
func (x *StartTotpEnrollmentResponse) Reset() { func (x *StartTotpEnrollmentResponse) Reset() {
*x = StartTotpEnrollmentResponse{} *x = StartTotpEnrollmentResponse{}
mi := &file_identity_proto_msgTypes[13] mi := &file_identity_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -777,7 +1017,7 @@ func (x *StartTotpEnrollmentResponse) String() string {
func (*StartTotpEnrollmentResponse) ProtoMessage() {} func (*StartTotpEnrollmentResponse) ProtoMessage() {}
func (x *StartTotpEnrollmentResponse) ProtoReflect() protoreflect.Message { func (x *StartTotpEnrollmentResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[13] mi := &file_identity_proto_msgTypes[17]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -790,7 +1030,7 @@ func (x *StartTotpEnrollmentResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartTotpEnrollmentResponse.ProtoReflect.Descriptor instead. // Deprecated: Use StartTotpEnrollmentResponse.ProtoReflect.Descriptor instead.
func (*StartTotpEnrollmentResponse) Descriptor() ([]byte, []int) { func (*StartTotpEnrollmentResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{13} return file_identity_proto_rawDescGZIP(), []int{17}
} }
func (x *StartTotpEnrollmentResponse) GetSecretBase32() string { func (x *StartTotpEnrollmentResponse) GetSecretBase32() string {
@@ -831,7 +1071,7 @@ type ConfirmTotpEnrollmentRequest struct {
func (x *ConfirmTotpEnrollmentRequest) Reset() { func (x *ConfirmTotpEnrollmentRequest) Reset() {
*x = ConfirmTotpEnrollmentRequest{} *x = ConfirmTotpEnrollmentRequest{}
mi := &file_identity_proto_msgTypes[14] mi := &file_identity_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -843,7 +1083,7 @@ func (x *ConfirmTotpEnrollmentRequest) String() string {
func (*ConfirmTotpEnrollmentRequest) ProtoMessage() {} func (*ConfirmTotpEnrollmentRequest) ProtoMessage() {}
func (x *ConfirmTotpEnrollmentRequest) ProtoReflect() protoreflect.Message { func (x *ConfirmTotpEnrollmentRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[14] mi := &file_identity_proto_msgTypes[18]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -856,7 +1096,7 @@ func (x *ConfirmTotpEnrollmentRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ConfirmTotpEnrollmentRequest.ProtoReflect.Descriptor instead. // Deprecated: Use ConfirmTotpEnrollmentRequest.ProtoReflect.Descriptor instead.
func (*ConfirmTotpEnrollmentRequest) Descriptor() ([]byte, []int) { func (*ConfirmTotpEnrollmentRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{14} return file_identity_proto_rawDescGZIP(), []int{18}
} }
func (x *ConfirmTotpEnrollmentRequest) GetAccessToken() string { func (x *ConfirmTotpEnrollmentRequest) GetAccessToken() string {
@@ -884,7 +1124,7 @@ type ConfirmTotpEnrollmentResponse struct {
func (x *ConfirmTotpEnrollmentResponse) Reset() { func (x *ConfirmTotpEnrollmentResponse) Reset() {
*x = ConfirmTotpEnrollmentResponse{} *x = ConfirmTotpEnrollmentResponse{}
mi := &file_identity_proto_msgTypes[15] mi := &file_identity_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -896,7 +1136,7 @@ func (x *ConfirmTotpEnrollmentResponse) String() string {
func (*ConfirmTotpEnrollmentResponse) ProtoMessage() {} func (*ConfirmTotpEnrollmentResponse) ProtoMessage() {}
func (x *ConfirmTotpEnrollmentResponse) ProtoReflect() protoreflect.Message { func (x *ConfirmTotpEnrollmentResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[15] mi := &file_identity_proto_msgTypes[19]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -909,7 +1149,7 @@ func (x *ConfirmTotpEnrollmentResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ConfirmTotpEnrollmentResponse.ProtoReflect.Descriptor instead. // Deprecated: Use ConfirmTotpEnrollmentResponse.ProtoReflect.Descriptor instead.
func (*ConfirmTotpEnrollmentResponse) Descriptor() ([]byte, []int) { func (*ConfirmTotpEnrollmentResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{15} return file_identity_proto_rawDescGZIP(), []int{19}
} }
func (x *ConfirmTotpEnrollmentResponse) GetStatus() string { func (x *ConfirmTotpEnrollmentResponse) GetStatus() string {
@@ -943,7 +1183,7 @@ type CancelTotpEnrollmentResponse struct {
func (x *CancelTotpEnrollmentResponse) Reset() { func (x *CancelTotpEnrollmentResponse) Reset() {
*x = CancelTotpEnrollmentResponse{} *x = CancelTotpEnrollmentResponse{}
mi := &file_identity_proto_msgTypes[16] mi := &file_identity_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -955,7 +1195,7 @@ func (x *CancelTotpEnrollmentResponse) String() string {
func (*CancelTotpEnrollmentResponse) ProtoMessage() {} func (*CancelTotpEnrollmentResponse) ProtoMessage() {}
func (x *CancelTotpEnrollmentResponse) ProtoReflect() protoreflect.Message { func (x *CancelTotpEnrollmentResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[16] mi := &file_identity_proto_msgTypes[20]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -968,7 +1208,7 @@ func (x *CancelTotpEnrollmentResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CancelTotpEnrollmentResponse.ProtoReflect.Descriptor instead. // Deprecated: Use CancelTotpEnrollmentResponse.ProtoReflect.Descriptor instead.
func (*CancelTotpEnrollmentResponse) Descriptor() ([]byte, []int) { func (*CancelTotpEnrollmentResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{16} return file_identity_proto_rawDescGZIP(), []int{20}
} }
func (x *CancelTotpEnrollmentResponse) GetStatus() string { func (x *CancelTotpEnrollmentResponse) GetStatus() string {
@@ -996,7 +1236,7 @@ type DisableTotpRequest struct {
func (x *DisableTotpRequest) Reset() { func (x *DisableTotpRequest) Reset() {
*x = DisableTotpRequest{} *x = DisableTotpRequest{}
mi := &file_identity_proto_msgTypes[17] mi := &file_identity_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -1008,7 +1248,7 @@ func (x *DisableTotpRequest) String() string {
func (*DisableTotpRequest) ProtoMessage() {} func (*DisableTotpRequest) ProtoMessage() {}
func (x *DisableTotpRequest) ProtoReflect() protoreflect.Message { func (x *DisableTotpRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[17] mi := &file_identity_proto_msgTypes[21]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -1021,7 +1261,7 @@ func (x *DisableTotpRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DisableTotpRequest.ProtoReflect.Descriptor instead. // Deprecated: Use DisableTotpRequest.ProtoReflect.Descriptor instead.
func (*DisableTotpRequest) Descriptor() ([]byte, []int) { func (*DisableTotpRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{17} return file_identity_proto_rawDescGZIP(), []int{21}
} }
func (x *DisableTotpRequest) GetAccessToken() string { func (x *DisableTotpRequest) GetAccessToken() string {
@@ -1055,7 +1295,7 @@ type DisableTotpResponse struct {
func (x *DisableTotpResponse) Reset() { func (x *DisableTotpResponse) Reset() {
*x = DisableTotpResponse{} *x = DisableTotpResponse{}
mi := &file_identity_proto_msgTypes[18] mi := &file_identity_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -1067,7 +1307,7 @@ func (x *DisableTotpResponse) String() string {
func (*DisableTotpResponse) ProtoMessage() {} func (*DisableTotpResponse) ProtoMessage() {}
func (x *DisableTotpResponse) ProtoReflect() protoreflect.Message { func (x *DisableTotpResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[18] mi := &file_identity_proto_msgTypes[22]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -1080,7 +1320,7 @@ func (x *DisableTotpResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DisableTotpResponse.ProtoReflect.Descriptor instead. // Deprecated: Use DisableTotpResponse.ProtoReflect.Descriptor instead.
func (*DisableTotpResponse) Descriptor() ([]byte, []int) { func (*DisableTotpResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{18} return file_identity_proto_rawDescGZIP(), []int{22}
} }
func (x *DisableTotpResponse) GetStatus() string { func (x *DisableTotpResponse) GetStatus() string {
@@ -1109,7 +1349,7 @@ type StartTelegramEnrollmentResponse struct {
func (x *StartTelegramEnrollmentResponse) Reset() { func (x *StartTelegramEnrollmentResponse) Reset() {
*x = StartTelegramEnrollmentResponse{} *x = StartTelegramEnrollmentResponse{}
mi := &file_identity_proto_msgTypes[19] mi := &file_identity_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -1121,7 +1361,7 @@ func (x *StartTelegramEnrollmentResponse) String() string {
func (*StartTelegramEnrollmentResponse) ProtoMessage() {} func (*StartTelegramEnrollmentResponse) ProtoMessage() {}
func (x *StartTelegramEnrollmentResponse) ProtoReflect() protoreflect.Message { func (x *StartTelegramEnrollmentResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[19] mi := &file_identity_proto_msgTypes[23]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -1134,7 +1374,7 @@ func (x *StartTelegramEnrollmentResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use StartTelegramEnrollmentResponse.ProtoReflect.Descriptor instead. // Deprecated: Use StartTelegramEnrollmentResponse.ProtoReflect.Descriptor instead.
func (*StartTelegramEnrollmentResponse) Descriptor() ([]byte, []int) { func (*StartTelegramEnrollmentResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{19} return file_identity_proto_rawDescGZIP(), []int{23}
} }
func (x *StartTelegramEnrollmentResponse) GetEnrollmentToken() string { func (x *StartTelegramEnrollmentResponse) GetEnrollmentToken() string {
@@ -1176,7 +1416,7 @@ type ConfirmTelegramEnrollmentRequest struct {
func (x *ConfirmTelegramEnrollmentRequest) Reset() { func (x *ConfirmTelegramEnrollmentRequest) Reset() {
*x = ConfirmTelegramEnrollmentRequest{} *x = ConfirmTelegramEnrollmentRequest{}
mi := &file_identity_proto_msgTypes[20] mi := &file_identity_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -1188,7 +1428,7 @@ func (x *ConfirmTelegramEnrollmentRequest) String() string {
func (*ConfirmTelegramEnrollmentRequest) ProtoMessage() {} func (*ConfirmTelegramEnrollmentRequest) ProtoMessage() {}
func (x *ConfirmTelegramEnrollmentRequest) ProtoReflect() protoreflect.Message { func (x *ConfirmTelegramEnrollmentRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[20] mi := &file_identity_proto_msgTypes[24]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -1201,7 +1441,7 @@ func (x *ConfirmTelegramEnrollmentRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ConfirmTelegramEnrollmentRequest.ProtoReflect.Descriptor instead. // Deprecated: Use ConfirmTelegramEnrollmentRequest.ProtoReflect.Descriptor instead.
func (*ConfirmTelegramEnrollmentRequest) Descriptor() ([]byte, []int) { func (*ConfirmTelegramEnrollmentRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{20} return file_identity_proto_rawDescGZIP(), []int{24}
} }
func (x *ConfirmTelegramEnrollmentRequest) GetAccessToken() string { func (x *ConfirmTelegramEnrollmentRequest) GetAccessToken() string {
@@ -1236,7 +1476,7 @@ type ConfirmTelegramEnrollmentResponse struct {
func (x *ConfirmTelegramEnrollmentResponse) Reset() { func (x *ConfirmTelegramEnrollmentResponse) Reset() {
*x = ConfirmTelegramEnrollmentResponse{} *x = ConfirmTelegramEnrollmentResponse{}
mi := &file_identity_proto_msgTypes[21] mi := &file_identity_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -1248,7 +1488,7 @@ func (x *ConfirmTelegramEnrollmentResponse) String() string {
func (*ConfirmTelegramEnrollmentResponse) ProtoMessage() {} func (*ConfirmTelegramEnrollmentResponse) ProtoMessage() {}
func (x *ConfirmTelegramEnrollmentResponse) ProtoReflect() protoreflect.Message { func (x *ConfirmTelegramEnrollmentResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[21] mi := &file_identity_proto_msgTypes[25]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -1261,7 +1501,7 @@ func (x *ConfirmTelegramEnrollmentResponse) ProtoReflect() protoreflect.Message
// Deprecated: Use ConfirmTelegramEnrollmentResponse.ProtoReflect.Descriptor instead. // Deprecated: Use ConfirmTelegramEnrollmentResponse.ProtoReflect.Descriptor instead.
func (*ConfirmTelegramEnrollmentResponse) Descriptor() ([]byte, []int) { func (*ConfirmTelegramEnrollmentResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{21} return file_identity_proto_rawDescGZIP(), []int{25}
} }
func (x *ConfirmTelegramEnrollmentResponse) GetStatus() string { func (x *ConfirmTelegramEnrollmentResponse) GetStatus() string {
@@ -1296,7 +1536,7 @@ type DisableTelegramRequest struct {
func (x *DisableTelegramRequest) Reset() { func (x *DisableTelegramRequest) Reset() {
*x = DisableTelegramRequest{} *x = DisableTelegramRequest{}
mi := &file_identity_proto_msgTypes[22] mi := &file_identity_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -1308,7 +1548,7 @@ func (x *DisableTelegramRequest) String() string {
func (*DisableTelegramRequest) ProtoMessage() {} func (*DisableTelegramRequest) ProtoMessage() {}
func (x *DisableTelegramRequest) ProtoReflect() protoreflect.Message { func (x *DisableTelegramRequest) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[22] mi := &file_identity_proto_msgTypes[26]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -1321,7 +1561,7 @@ func (x *DisableTelegramRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DisableTelegramRequest.ProtoReflect.Descriptor instead. // Deprecated: Use DisableTelegramRequest.ProtoReflect.Descriptor instead.
func (*DisableTelegramRequest) Descriptor() ([]byte, []int) { func (*DisableTelegramRequest) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{22} return file_identity_proto_rawDescGZIP(), []int{26}
} }
func (x *DisableTelegramRequest) GetAccessToken() string { func (x *DisableTelegramRequest) GetAccessToken() string {
@@ -1355,7 +1595,7 @@ type DisableTelegramResponse struct {
func (x *DisableTelegramResponse) Reset() { func (x *DisableTelegramResponse) Reset() {
*x = DisableTelegramResponse{} *x = DisableTelegramResponse{}
mi := &file_identity_proto_msgTypes[23] mi := &file_identity_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
@@ -1367,7 +1607,7 @@ func (x *DisableTelegramResponse) String() string {
func (*DisableTelegramResponse) ProtoMessage() {} func (*DisableTelegramResponse) ProtoMessage() {}
func (x *DisableTelegramResponse) ProtoReflect() protoreflect.Message { func (x *DisableTelegramResponse) ProtoReflect() protoreflect.Message {
mi := &file_identity_proto_msgTypes[23] mi := &file_identity_proto_msgTypes[27]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil { if ms.LoadMessageInfo() == nil {
@@ -1380,7 +1620,7 @@ func (x *DisableTelegramResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DisableTelegramResponse.ProtoReflect.Descriptor instead. // Deprecated: Use DisableTelegramResponse.ProtoReflect.Descriptor instead.
func (*DisableTelegramResponse) Descriptor() ([]byte, []int) { func (*DisableTelegramResponse) Descriptor() ([]byte, []int) {
return file_identity_proto_rawDescGZIP(), []int{23} return file_identity_proto_rawDescGZIP(), []int{27}
} }
func (x *DisableTelegramResponse) GetStatus() string { func (x *DisableTelegramResponse) GetStatus() string {
@@ -1428,7 +1668,33 @@ const file_identity_proto_rawDesc = "" +
"\faccess_token\x18\x01 \x01(\tR\vaccessToken\"D\n" + "\faccess_token\x18\x01 \x01(\tR\vaccessToken\"D\n" +
"\x0eLogoutResponse\x12\x18\n" + "\x0eLogoutResponse\x12\x18\n" +
"\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" +
"\amessage\x18\x02 \x01(\tR\amessage\"P\n" + "\amessage\x18\x02 \x01(\tR\amessage\"*\n" +
"\x12VerifyTokenRequest\x12\x14\n" +
"\x05token\x18\x01 \x01(\tR\x05token\"\xf7\x02\n" +
"\x13VerifyTokenResponse\x12\x19\n" +
"\bis_valid\x18\x01 \x01(\bR\aisValid\x12(\n" +
"\rerror_message\x18\x02 \x01(\tH\x00R\ferrorMessage\x88\x01\x01\x12\x13\n" +
"\x02id\x18\x03 \x01(\tH\x01R\x02id\x88\x01\x01\x12\x1f\n" +
"\busername\x18\x04 \x01(\tH\x02R\busername\x88\x01\x01\x12\"\n" +
"\n" +
"role_level\x18\x05 \x01(\x05H\x03R\troleLevel\x88\x01\x01\x12 \n" +
"\vpermissions\x18\x06 \x03(\tR\vpermissions\x12\"\n" +
"\n" +
"session_id\x18\a \x01(\tH\x04R\tsessionId\x88\x01\x01\x12&\n" +
"\frequires_pin\x18\b \x01(\bH\x05R\vrequiresPin\x88\x01\x01B\x10\n" +
"\x0e_error_messageB\x05\n" +
"\x03_idB\v\n" +
"\t_usernameB\r\n" +
"\v_role_levelB\r\n" +
"\v_session_idB\x0f\n" +
"\r_requires_pin\";\n" +
"\x1aGetAccountRoleLevelRequest\x12\x1d\n" +
"\n" +
"account_id\x18\x01 \x01(\tR\taccountId\"R\n" +
"\x1bGetAccountRoleLevelResponse\x12\x14\n" +
"\x05found\x18\x01 \x01(\bR\x05found\x12\x1d\n" +
"\n" +
"role_level\x18\x02 \x01(\x05R\troleLevel\"P\n" +
"\x10UnlockPinRequest\x12!\n" + "\x10UnlockPinRequest\x12!\n" +
"\faccess_token\x18\x01 \x01(\tR\vaccessToken\x12\x19\n" + "\faccess_token\x18\x01 \x01(\tR\vaccessToken\x12\x19\n" +
"\bpin_code\x18\x02 \x01(\tR\apinCode\"G\n" + "\bpin_code\x18\x02 \x01(\tR\apinCode\"G\n" +
@@ -1503,11 +1769,14 @@ const file_identity_proto_rawDesc = "" +
"\x12_telegram_otp_code\"K\n" + "\x12_telegram_otp_code\"K\n" +
"\x17DisableTelegramResponse\x12\x16\n" + "\x17DisableTelegramResponse\x12\x16\n" +
"\x06status\x18\x01 \x01(\tR\x06status\x12\x18\n" + "\x06status\x18\x01 \x01(\tR\x06status\x12\x18\n" +
"\amessage\x18\x02 \x01(\tR\amessage2\xd0\x02\n" + "\amessage\x18\x02 \x01(\tR\amessage2\xc0\x04\n" +
"\vAuthService\x128\n" + "\vAuthService\x128\n" +
"\x05Login\x12\x16.identity.LoginRequest\x1a\x17.identity.LoginResponse\x12>\n" + "\x05Login\x12\x16.identity.LoginRequest\x1a\x17.identity.LoginResponse\x12>\n" +
"\aRefresh\x12\x18.identity.RefreshRequest\x1a\x19.identity.RefreshResponse\x12;\n" + "\aRefresh\x12\x18.identity.RefreshRequest\x1a\x19.identity.RefreshResponse\x12J\n" +
"\x06Logout\x12\x17.identity.LogoutRequest\x1a\x18.identity.LogoutResponse\x12D\n" + "\vVerifyToken\x12\x1c.identity.VerifyTokenRequest\x1a\x1d.identity.VerifyTokenResponse\x12b\n" +
"\x13GetAccountRoleLevel\x12$.identity.GetAccountRoleLevelRequest\x1a%.identity.GetAccountRoleLevelResponse\x12;\n" +
"\x06Logout\x12\x17.identity.LogoutRequest\x1a\x18.identity.LogoutResponse\x12>\n" +
"\tLogoutAll\x12\x17.identity.LogoutRequest\x1a\x18.identity.LogoutResponse\x12D\n" +
"\tUnlockPin\x12\x1a.identity.UnlockPinRequest\x1a\x1b.identity.UnlockPinResponse\x12D\n" + "\tUnlockPin\x12\x1a.identity.UnlockPinRequest\x1a\x1b.identity.UnlockPinResponse\x12D\n" +
"\tVerify2Fa\x12\x1a.identity.Verify2FaRequest\x1a\x1b.identity.Verify2FaResponse2\x9c\x06\n" + "\tVerify2Fa\x12\x1a.identity.Verify2FaRequest\x1a\x1b.identity.Verify2FaResponse2\x9c\x06\n" +
"\fTwoFaService\x12S\n" + "\fTwoFaService\x12S\n" +
@@ -1518,7 +1787,7 @@ const file_identity_proto_rawDesc = "" +
"\vDisableTotp\x12\x1c.identity.DisableTotpRequest\x1a\x1d.identity.DisableTotpResponse\x12j\n" + "\vDisableTotp\x12\x1c.identity.DisableTotpRequest\x1a\x1d.identity.DisableTotpResponse\x12j\n" +
"\x17StartTelegramEnrollment\x12$.identity.AuthenticatedAccessRequest\x1a).identity.StartTelegramEnrollmentResponse\x12t\n" + "\x17StartTelegramEnrollment\x12$.identity.AuthenticatedAccessRequest\x1a).identity.StartTelegramEnrollmentResponse\x12t\n" +
"\x19ConfirmTelegramEnrollment\x12*.identity.ConfirmTelegramEnrollmentRequest\x1a+.identity.ConfirmTelegramEnrollmentResponse\x12V\n" + "\x19ConfirmTelegramEnrollment\x12*.identity.ConfirmTelegramEnrollmentRequest\x1a+.identity.ConfirmTelegramEnrollmentResponse\x12V\n" +
"\x0fDisableTelegram\x12 .identity.DisableTelegramRequest\x1a!.identity.DisableTelegramResponseB\aZ\x05./genb\x06proto3" "\x0fDisableTelegram\x12 .identity.DisableTelegramRequest\x1a!.identity.DisableTelegramResponseB*Z(git.lendry.ru/lendry-erp/proto.git/go;pbb\x06proto3"
var ( var (
file_identity_proto_rawDescOnce sync.Once file_identity_proto_rawDescOnce sync.Once
@@ -1532,7 +1801,7 @@ func file_identity_proto_rawDescGZIP() []byte {
return file_identity_proto_rawDescData return file_identity_proto_rawDescData
} }
var file_identity_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_identity_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
var file_identity_proto_goTypes = []any{ var file_identity_proto_goTypes = []any{
(*LoginRequest)(nil), // 0: identity.LoginRequest (*LoginRequest)(nil), // 0: identity.LoginRequest
(*LoginResponse)(nil), // 1: identity.LoginResponse (*LoginResponse)(nil), // 1: identity.LoginResponse
@@ -1540,54 +1809,64 @@ var file_identity_proto_goTypes = []any{
(*RefreshResponse)(nil), // 3: identity.RefreshResponse (*RefreshResponse)(nil), // 3: identity.RefreshResponse
(*LogoutRequest)(nil), // 4: identity.LogoutRequest (*LogoutRequest)(nil), // 4: identity.LogoutRequest
(*LogoutResponse)(nil), // 5: identity.LogoutResponse (*LogoutResponse)(nil), // 5: identity.LogoutResponse
(*UnlockPinRequest)(nil), // 6: identity.UnlockPinRequest (*VerifyTokenRequest)(nil), // 6: identity.VerifyTokenRequest
(*UnlockPinResponse)(nil), // 7: identity.UnlockPinResponse (*VerifyTokenResponse)(nil), // 7: identity.VerifyTokenResponse
(*Verify2FaRequest)(nil), // 8: identity.Verify2FaRequest (*GetAccountRoleLevelRequest)(nil), // 8: identity.GetAccountRoleLevelRequest
(*Verify2FaResponse)(nil), // 9: identity.Verify2FaResponse (*GetAccountRoleLevelResponse)(nil), // 9: identity.GetAccountRoleLevelResponse
(*AuthenticatedAccessRequest)(nil), // 10: identity.AuthenticatedAccessRequest (*UnlockPinRequest)(nil), // 10: identity.UnlockPinRequest
(*GetTwoFaStatusRequest)(nil), // 11: identity.GetTwoFaStatusRequest (*UnlockPinResponse)(nil), // 11: identity.UnlockPinResponse
(*GetTwoFaStatusResponse)(nil), // 12: identity.GetTwoFaStatusResponse (*Verify2FaRequest)(nil), // 12: identity.Verify2FaRequest
(*StartTotpEnrollmentResponse)(nil), // 13: identity.StartTotpEnrollmentResponse (*Verify2FaResponse)(nil), // 13: identity.Verify2FaResponse
(*ConfirmTotpEnrollmentRequest)(nil), // 14: identity.ConfirmTotpEnrollmentRequest (*AuthenticatedAccessRequest)(nil), // 14: identity.AuthenticatedAccessRequest
(*ConfirmTotpEnrollmentResponse)(nil), // 15: identity.ConfirmTotpEnrollmentResponse (*GetTwoFaStatusRequest)(nil), // 15: identity.GetTwoFaStatusRequest
(*CancelTotpEnrollmentResponse)(nil), // 16: identity.CancelTotpEnrollmentResponse (*GetTwoFaStatusResponse)(nil), // 16: identity.GetTwoFaStatusResponse
(*DisableTotpRequest)(nil), // 17: identity.DisableTotpRequest (*StartTotpEnrollmentResponse)(nil), // 17: identity.StartTotpEnrollmentResponse
(*DisableTotpResponse)(nil), // 18: identity.DisableTotpResponse (*ConfirmTotpEnrollmentRequest)(nil), // 18: identity.ConfirmTotpEnrollmentRequest
(*StartTelegramEnrollmentResponse)(nil), // 19: identity.StartTelegramEnrollmentResponse (*ConfirmTotpEnrollmentResponse)(nil), // 19: identity.ConfirmTotpEnrollmentResponse
(*ConfirmTelegramEnrollmentRequest)(nil), // 20: identity.ConfirmTelegramEnrollmentRequest (*CancelTotpEnrollmentResponse)(nil), // 20: identity.CancelTotpEnrollmentResponse
(*ConfirmTelegramEnrollmentResponse)(nil), // 21: identity.ConfirmTelegramEnrollmentResponse (*DisableTotpRequest)(nil), // 21: identity.DisableTotpRequest
(*DisableTelegramRequest)(nil), // 22: identity.DisableTelegramRequest (*DisableTotpResponse)(nil), // 22: identity.DisableTotpResponse
(*DisableTelegramResponse)(nil), // 23: identity.DisableTelegramResponse (*StartTelegramEnrollmentResponse)(nil), // 23: identity.StartTelegramEnrollmentResponse
(*ConfirmTelegramEnrollmentRequest)(nil), // 24: identity.ConfirmTelegramEnrollmentRequest
(*ConfirmTelegramEnrollmentResponse)(nil), // 25: identity.ConfirmTelegramEnrollmentResponse
(*DisableTelegramRequest)(nil), // 26: identity.DisableTelegramRequest
(*DisableTelegramResponse)(nil), // 27: identity.DisableTelegramResponse
} }
var file_identity_proto_depIdxs = []int32{ var file_identity_proto_depIdxs = []int32{
0, // 0: identity.AuthService.Login:input_type -> identity.LoginRequest 0, // 0: identity.AuthService.Login:input_type -> identity.LoginRequest
2, // 1: identity.AuthService.Refresh:input_type -> identity.RefreshRequest 2, // 1: identity.AuthService.Refresh:input_type -> identity.RefreshRequest
4, // 2: identity.AuthService.Logout:input_type -> identity.LogoutRequest 6, // 2: identity.AuthService.VerifyToken:input_type -> identity.VerifyTokenRequest
6, // 3: identity.AuthService.UnlockPin:input_type -> identity.UnlockPinRequest 8, // 3: identity.AuthService.GetAccountRoleLevel:input_type -> identity.GetAccountRoleLevelRequest
8, // 4: identity.AuthService.Verify2Fa:input_type -> identity.Verify2FaRequest 4, // 4: identity.AuthService.Logout:input_type -> identity.LogoutRequest
11, // 5: identity.TwoFaService.GetTwoFaStatus:input_type -> identity.GetTwoFaStatusRequest 4, // 5: identity.AuthService.LogoutAll:input_type -> identity.LogoutRequest
10, // 6: identity.TwoFaService.StartTotpEnrollment:input_type -> identity.AuthenticatedAccessRequest 10, // 6: identity.AuthService.UnlockPin:input_type -> identity.UnlockPinRequest
14, // 7: identity.TwoFaService.ConfirmTotpErollment:input_type -> identity.ConfirmTotpEnrollmentRequest 12, // 7: identity.AuthService.Verify2Fa:input_type -> identity.Verify2FaRequest
10, // 8: identity.TwoFaService.CancelTotpEnrollment:input_type -> identity.AuthenticatedAccessRequest 15, // 8: identity.TwoFaService.GetTwoFaStatus:input_type -> identity.GetTwoFaStatusRequest
17, // 9: identity.TwoFaService.DisableTotp:input_type -> identity.DisableTotpRequest 14, // 9: identity.TwoFaService.StartTotpEnrollment:input_type -> identity.AuthenticatedAccessRequest
10, // 10: identity.TwoFaService.StartTelegramEnrollment:input_type -> identity.AuthenticatedAccessRequest 18, // 10: identity.TwoFaService.ConfirmTotpErollment:input_type -> identity.ConfirmTotpEnrollmentRequest
20, // 11: identity.TwoFaService.ConfirmTelegramEnrollment:input_type -> identity.ConfirmTelegramEnrollmentRequest 14, // 11: identity.TwoFaService.CancelTotpEnrollment:input_type -> identity.AuthenticatedAccessRequest
22, // 12: identity.TwoFaService.DisableTelegram:input_type -> identity.DisableTelegramRequest 21, // 12: identity.TwoFaService.DisableTotp:input_type -> identity.DisableTotpRequest
1, // 13: identity.AuthService.Login:output_type -> identity.LoginResponse 14, // 13: identity.TwoFaService.StartTelegramEnrollment:input_type -> identity.AuthenticatedAccessRequest
3, // 14: identity.AuthService.Refresh:output_type -> identity.RefreshResponse 24, // 14: identity.TwoFaService.ConfirmTelegramEnrollment:input_type -> identity.ConfirmTelegramEnrollmentRequest
5, // 15: identity.AuthService.Logout:output_type -> identity.LogoutResponse 26, // 15: identity.TwoFaService.DisableTelegram:input_type -> identity.DisableTelegramRequest
7, // 16: identity.AuthService.UnlockPin:output_type -> identity.UnlockPinResponse 1, // 16: identity.AuthService.Login:output_type -> identity.LoginResponse
9, // 17: identity.AuthService.Verify2Fa:output_type -> identity.Verify2FaResponse 3, // 17: identity.AuthService.Refresh:output_type -> identity.RefreshResponse
12, // 18: identity.TwoFaService.GetTwoFaStatus:output_type -> identity.GetTwoFaStatusResponse 7, // 18: identity.AuthService.VerifyToken:output_type -> identity.VerifyTokenResponse
13, // 19: identity.TwoFaService.StartTotpEnrollment:output_type -> identity.StartTotpEnrollmentResponse 9, // 19: identity.AuthService.GetAccountRoleLevel:output_type -> identity.GetAccountRoleLevelResponse
15, // 20: identity.TwoFaService.ConfirmTotpErollment:output_type -> identity.ConfirmTotpEnrollmentResponse 5, // 20: identity.AuthService.Logout:output_type -> identity.LogoutResponse
16, // 21: identity.TwoFaService.CancelTotpEnrollment:output_type -> identity.CancelTotpEnrollmentResponse 5, // 21: identity.AuthService.LogoutAll:output_type -> identity.LogoutResponse
18, // 22: identity.TwoFaService.DisableTotp:output_type -> identity.DisableTotpResponse 11, // 22: identity.AuthService.UnlockPin:output_type -> identity.UnlockPinResponse
19, // 23: identity.TwoFaService.StartTelegramEnrollment:output_type -> identity.StartTelegramEnrollmentResponse 13, // 23: identity.AuthService.Verify2Fa:output_type -> identity.Verify2FaResponse
21, // 24: identity.TwoFaService.ConfirmTelegramEnrollment:output_type -> identity.ConfirmTelegramEnrollmentResponse 16, // 24: identity.TwoFaService.GetTwoFaStatus:output_type -> identity.GetTwoFaStatusResponse
23, // 25: identity.TwoFaService.DisableTelegram:output_type -> identity.DisableTelegramResponse 17, // 25: identity.TwoFaService.StartTotpEnrollment:output_type -> identity.StartTotpEnrollmentResponse
13, // [13:26] is the sub-list for method output_type 19, // 26: identity.TwoFaService.ConfirmTotpErollment:output_type -> identity.ConfirmTotpEnrollmentResponse
0, // [0:13] is the sub-list for method input_type 20, // 27: identity.TwoFaService.CancelTotpEnrollment:output_type -> identity.CancelTotpEnrollmentResponse
22, // 28: identity.TwoFaService.DisableTotp:output_type -> identity.DisableTotpResponse
23, // 29: identity.TwoFaService.StartTelegramEnrollment:output_type -> identity.StartTelegramEnrollmentResponse
25, // 30: identity.TwoFaService.ConfirmTelegramEnrollment:output_type -> identity.ConfirmTelegramEnrollmentResponse
27, // 31: identity.TwoFaService.DisableTelegram:output_type -> identity.DisableTelegramResponse
16, // [16:32] is the sub-list for method output_type
0, // [0:16] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name 0, // [0:0] is the sub-list for field type_name
@@ -1599,16 +1878,17 @@ func file_identity_proto_init() {
return return
} }
file_identity_proto_msgTypes[1].OneofWrappers = []any{} file_identity_proto_msgTypes[1].OneofWrappers = []any{}
file_identity_proto_msgTypes[8].OneofWrappers = []any{} file_identity_proto_msgTypes[7].OneofWrappers = []any{}
file_identity_proto_msgTypes[17].OneofWrappers = []any{} file_identity_proto_msgTypes[12].OneofWrappers = []any{}
file_identity_proto_msgTypes[22].OneofWrappers = []any{} file_identity_proto_msgTypes[21].OneofWrappers = []any{}
file_identity_proto_msgTypes[26].OneofWrappers = []any{}
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{ File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_identity_proto_rawDesc), len(file_identity_proto_rawDesc)), RawDescriptor: unsafe.Slice(unsafe.StringData(file_identity_proto_rawDesc), len(file_identity_proto_rawDesc)),
NumEnums: 0, NumEnums: 0,
NumMessages: 24, NumMessages: 28,
NumExtensions: 0, NumExtensions: 0,
NumServices: 2, NumServices: 2,
}, },

View File

@@ -4,7 +4,7 @@
// - protoc v3.21.12 // - protoc v3.21.12
// source: identity.proto // source: identity.proto
package gen package pb
import ( import (
context "context" context "context"
@@ -19,11 +19,14 @@ import (
const _ = grpc.SupportPackageIsVersion9 const _ = grpc.SupportPackageIsVersion9
const ( const (
AuthService_Login_FullMethodName = "/identity.AuthService/Login" AuthService_Login_FullMethodName = "/identity.AuthService/Login"
AuthService_Refresh_FullMethodName = "/identity.AuthService/Refresh" AuthService_Refresh_FullMethodName = "/identity.AuthService/Refresh"
AuthService_Logout_FullMethodName = "/identity.AuthService/Logout" AuthService_VerifyToken_FullMethodName = "/identity.AuthService/VerifyToken"
AuthService_UnlockPin_FullMethodName = "/identity.AuthService/UnlockPin" AuthService_GetAccountRoleLevel_FullMethodName = "/identity.AuthService/GetAccountRoleLevel"
AuthService_Verify2Fa_FullMethodName = "/identity.AuthService/Verify2Fa" AuthService_Logout_FullMethodName = "/identity.AuthService/Logout"
AuthService_LogoutAll_FullMethodName = "/identity.AuthService/LogoutAll"
AuthService_UnlockPin_FullMethodName = "/identity.AuthService/UnlockPin"
AuthService_Verify2Fa_FullMethodName = "/identity.AuthService/Verify2Fa"
) )
// AuthServiceClient is the client API for AuthService service. // AuthServiceClient is the client API for AuthService service.
@@ -32,7 +35,10 @@ const (
type AuthServiceClient interface { type AuthServiceClient interface {
Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error) Login(ctx context.Context, in *LoginRequest, opts ...grpc.CallOption) (*LoginResponse, error)
Refresh(ctx context.Context, in *RefreshRequest, opts ...grpc.CallOption) (*RefreshResponse, error) Refresh(ctx context.Context, in *RefreshRequest, opts ...grpc.CallOption) (*RefreshResponse, error)
VerifyToken(ctx context.Context, in *VerifyTokenRequest, opts ...grpc.CallOption) (*VerifyTokenResponse, error)
GetAccountRoleLevel(ctx context.Context, in *GetAccountRoleLevelRequest, opts ...grpc.CallOption) (*GetAccountRoleLevelResponse, error)
Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error) Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error)
LogoutAll(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error)
UnlockPin(ctx context.Context, in *UnlockPinRequest, opts ...grpc.CallOption) (*UnlockPinResponse, error) UnlockPin(ctx context.Context, in *UnlockPinRequest, opts ...grpc.CallOption) (*UnlockPinResponse, error)
Verify2Fa(ctx context.Context, in *Verify2FaRequest, opts ...grpc.CallOption) (*Verify2FaResponse, error) Verify2Fa(ctx context.Context, in *Verify2FaRequest, opts ...grpc.CallOption) (*Verify2FaResponse, error)
} }
@@ -65,6 +71,26 @@ func (c *authServiceClient) Refresh(ctx context.Context, in *RefreshRequest, opt
return out, nil return out, nil
} }
func (c *authServiceClient) VerifyToken(ctx context.Context, in *VerifyTokenRequest, opts ...grpc.CallOption) (*VerifyTokenResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(VerifyTokenResponse)
err := c.cc.Invoke(ctx, AuthService_VerifyToken_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *authServiceClient) GetAccountRoleLevel(ctx context.Context, in *GetAccountRoleLevelRequest, opts ...grpc.CallOption) (*GetAccountRoleLevelResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GetAccountRoleLevelResponse)
err := c.cc.Invoke(ctx, AuthService_GetAccountRoleLevel_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *authServiceClient) Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error) { func (c *authServiceClient) Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(LogoutResponse) out := new(LogoutResponse)
@@ -75,6 +101,16 @@ func (c *authServiceClient) Logout(ctx context.Context, in *LogoutRequest, opts
return out, nil return out, nil
} }
func (c *authServiceClient) LogoutAll(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(LogoutResponse)
err := c.cc.Invoke(ctx, AuthService_LogoutAll_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *authServiceClient) UnlockPin(ctx context.Context, in *UnlockPinRequest, opts ...grpc.CallOption) (*UnlockPinResponse, error) { func (c *authServiceClient) UnlockPin(ctx context.Context, in *UnlockPinRequest, opts ...grpc.CallOption) (*UnlockPinResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(UnlockPinResponse) out := new(UnlockPinResponse)
@@ -101,7 +137,10 @@ func (c *authServiceClient) Verify2Fa(ctx context.Context, in *Verify2FaRequest,
type AuthServiceServer interface { type AuthServiceServer interface {
Login(context.Context, *LoginRequest) (*LoginResponse, error) Login(context.Context, *LoginRequest) (*LoginResponse, error)
Refresh(context.Context, *RefreshRequest) (*RefreshResponse, error) Refresh(context.Context, *RefreshRequest) (*RefreshResponse, error)
VerifyToken(context.Context, *VerifyTokenRequest) (*VerifyTokenResponse, error)
GetAccountRoleLevel(context.Context, *GetAccountRoleLevelRequest) (*GetAccountRoleLevelResponse, error)
Logout(context.Context, *LogoutRequest) (*LogoutResponse, error) Logout(context.Context, *LogoutRequest) (*LogoutResponse, error)
LogoutAll(context.Context, *LogoutRequest) (*LogoutResponse, error)
UnlockPin(context.Context, *UnlockPinRequest) (*UnlockPinResponse, error) UnlockPin(context.Context, *UnlockPinRequest) (*UnlockPinResponse, error)
Verify2Fa(context.Context, *Verify2FaRequest) (*Verify2FaResponse, error) Verify2Fa(context.Context, *Verify2FaRequest) (*Verify2FaResponse, error)
mustEmbedUnimplementedAuthServiceServer() mustEmbedUnimplementedAuthServiceServer()
@@ -120,9 +159,18 @@ func (UnimplementedAuthServiceServer) Login(context.Context, *LoginRequest) (*Lo
func (UnimplementedAuthServiceServer) Refresh(context.Context, *RefreshRequest) (*RefreshResponse, error) { func (UnimplementedAuthServiceServer) Refresh(context.Context, *RefreshRequest) (*RefreshResponse, error) {
return nil, status.Error(codes.Unimplemented, "method Refresh not implemented") return nil, status.Error(codes.Unimplemented, "method Refresh not implemented")
} }
func (UnimplementedAuthServiceServer) VerifyToken(context.Context, *VerifyTokenRequest) (*VerifyTokenResponse, error) {
return nil, status.Error(codes.Unimplemented, "method VerifyToken not implemented")
}
func (UnimplementedAuthServiceServer) GetAccountRoleLevel(context.Context, *GetAccountRoleLevelRequest) (*GetAccountRoleLevelResponse, error) {
return nil, status.Error(codes.Unimplemented, "method GetAccountRoleLevel not implemented")
}
func (UnimplementedAuthServiceServer) Logout(context.Context, *LogoutRequest) (*LogoutResponse, error) { func (UnimplementedAuthServiceServer) Logout(context.Context, *LogoutRequest) (*LogoutResponse, error) {
return nil, status.Error(codes.Unimplemented, "method Logout not implemented") return nil, status.Error(codes.Unimplemented, "method Logout not implemented")
} }
func (UnimplementedAuthServiceServer) LogoutAll(context.Context, *LogoutRequest) (*LogoutResponse, error) {
return nil, status.Error(codes.Unimplemented, "method LogoutAll not implemented")
}
func (UnimplementedAuthServiceServer) UnlockPin(context.Context, *UnlockPinRequest) (*UnlockPinResponse, error) { func (UnimplementedAuthServiceServer) UnlockPin(context.Context, *UnlockPinRequest) (*UnlockPinResponse, error) {
return nil, status.Error(codes.Unimplemented, "method UnlockPin not implemented") return nil, status.Error(codes.Unimplemented, "method UnlockPin not implemented")
} }
@@ -186,6 +234,42 @@ func _AuthService_Refresh_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _AuthService_VerifyToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(VerifyTokenRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(AuthServiceServer).VerifyToken(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: AuthService_VerifyToken_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AuthServiceServer).VerifyToken(ctx, req.(*VerifyTokenRequest))
}
return interceptor(ctx, in, info, handler)
}
func _AuthService_GetAccountRoleLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetAccountRoleLevelRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(AuthServiceServer).GetAccountRoleLevel(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: AuthService_GetAccountRoleLevel_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AuthServiceServer).GetAccountRoleLevel(ctx, req.(*GetAccountRoleLevelRequest))
}
return interceptor(ctx, in, info, handler)
}
func _AuthService_Logout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _AuthService_Logout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(LogoutRequest) in := new(LogoutRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@@ -204,6 +288,24 @@ func _AuthService_Logout_Handler(srv interface{}, ctx context.Context, dec func(
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _AuthService_LogoutAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(LogoutRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(AuthServiceServer).LogoutAll(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: AuthService_LogoutAll_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AuthServiceServer).LogoutAll(ctx, req.(*LogoutRequest))
}
return interceptor(ctx, in, info, handler)
}
func _AuthService_UnlockPin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _AuthService_UnlockPin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UnlockPinRequest) in := new(UnlockPinRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@@ -255,10 +357,22 @@ var AuthService_ServiceDesc = grpc.ServiceDesc{
MethodName: "Refresh", MethodName: "Refresh",
Handler: _AuthService_Refresh_Handler, Handler: _AuthService_Refresh_Handler,
}, },
{
MethodName: "VerifyToken",
Handler: _AuthService_VerifyToken_Handler,
},
{
MethodName: "GetAccountRoleLevel",
Handler: _AuthService_GetAccountRoleLevel_Handler,
},
{ {
MethodName: "Logout", MethodName: "Logout",
Handler: _AuthService_Logout_Handler, Handler: _AuthService_Logout_Handler,
}, },
{
MethodName: "LogoutAll",
Handler: _AuthService_LogoutAll_Handler,
},
{ {
MethodName: "UnlockPin", MethodName: "UnlockPin",
Handler: _AuthService_UnlockPin_Handler, Handler: _AuthService_UnlockPin_Handler,

View File

@@ -4,7 +4,7 @@
// protoc v3.21.12 // protoc v3.21.12
// source: ldap.proto // source: ldap.proto
package ldap_service package pb
import ( import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoreflect "google.golang.org/protobuf/reflect/protoreflect"
@@ -21,28 +21,29 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
) )
type VerifyRequest struct { // ==========================================
// БАЗОВЫЕ И ПЕРЕИСПОЛЬЗУЕМЫЕ СТРУКТУРЫ
// ==========================================
type EmptyRequest struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
func (x *VerifyRequest) Reset() { func (x *EmptyRequest) Reset() {
*x = VerifyRequest{} *x = EmptyRequest{}
mi := &file_ldap_proto_msgTypes[0] mi := &file_ldap_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
func (x *VerifyRequest) String() string { func (x *EmptyRequest) String() string {
return protoimpl.X.MessageStringOf(x) return protoimpl.X.MessageStringOf(x)
} }
func (*VerifyRequest) ProtoMessage() {} func (*EmptyRequest) ProtoMessage() {}
func (x *VerifyRequest) ProtoReflect() protoreflect.Message { func (x *EmptyRequest) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[0] mi := &file_ldap_proto_msgTypes[0]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -54,48 +55,34 @@ func (x *VerifyRequest) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x) return mi.MessageOf(x)
} }
// Deprecated: Use VerifyRequest.ProtoReflect.Descriptor instead. // Deprecated: Use EmptyRequest.ProtoReflect.Descriptor instead.
func (*VerifyRequest) Descriptor() ([]byte, []int) { func (*EmptyRequest) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{0} return file_ldap_proto_rawDescGZIP(), []int{0}
} }
func (x *VerifyRequest) GetUsername() string { // Стандартный ответ для мутаций (создание, обновление, удаление)
if x != nil { type StatusResponse struct {
return x.Username
}
return ""
}
func (x *VerifyRequest) GetPassword() string {
if x != nil {
return x.Password
}
return ""
}
type VerifyResponse struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
User *UserData `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"`
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
func (x *VerifyResponse) Reset() { func (x *StatusResponse) Reset() {
*x = VerifyResponse{} *x = StatusResponse{}
mi := &file_ldap_proto_msgTypes[1] mi := &file_ldap_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi) ms.StoreMessageInfo(mi)
} }
func (x *VerifyResponse) String() string { func (x *StatusResponse) String() string {
return protoimpl.X.MessageStringOf(x) return protoimpl.X.MessageStringOf(x)
} }
func (*VerifyResponse) ProtoMessage() {} func (*StatusResponse) ProtoMessage() {}
func (x *VerifyResponse) ProtoReflect() protoreflect.Message { func (x *StatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[1] mi := &file_ldap_proto_msgTypes[1]
if x != nil { if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -107,38 +94,36 @@ func (x *VerifyResponse) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x) return mi.MessageOf(x)
} }
// Deprecated: Use VerifyResponse.ProtoReflect.Descriptor instead. // Deprecated: Use StatusResponse.ProtoReflect.Descriptor instead.
func (*VerifyResponse) Descriptor() ([]byte, []int) { func (*StatusResponse) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{1} return file_ldap_proto_rawDescGZIP(), []int{1}
} }
func (x *VerifyResponse) GetSuccess() bool { func (x *StatusResponse) GetSuccess() bool {
if x != nil { if x != nil {
return x.Success return x.Success
} }
return false return false
} }
func (x *VerifyResponse) GetErrorMessage() string { func (x *StatusResponse) GetErrorMessage() string {
if x != nil { if x != nil {
return x.ErrorMessage return x.ErrorMessage
} }
return "" return ""
} }
func (x *VerifyResponse) GetUser() *UserData { // Полная модель пользователя
if x != nil {
return x.User
}
return nil
}
type UserData struct { type UserData struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
Dn string `protobuf:"bytes,1,opt,name=dn,proto3" json:"dn,omitempty"` Dn string `protobuf:"bytes,1,opt,name=dn,proto3" json:"dn,omitempty"` // Полный путь в AD (Distinguished Name)
DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"` // Логин (sAMAccountName)
Groups []string `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"` DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` // ФИО (displayName)
IsActive bool `protobuf:"varint,4,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` Email string `protobuf:"bytes,4,opt,name=email,proto3" json:"email,omitempty"` // Почта (mail)
Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` // Описание/Должность (description)
Avatar []byte `protobuf:"bytes,6,opt,name=avatar,proto3" json:"avatar,omitempty"` // Аватарка в байтах (thumbnailPhoto)
Groups []string `protobuf:"bytes,7,rep,name=groups,proto3" json:"groups,omitempty"` // Список групп
IsActive bool `protobuf:"varint,8,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` // Статус аккаунта
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
@@ -180,6 +165,13 @@ func (x *UserData) GetDn() string {
return "" return ""
} }
func (x *UserData) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *UserData) GetDisplayName() string { func (x *UserData) GetDisplayName() string {
if x != nil { if x != nil {
return x.DisplayName return x.DisplayName
@@ -187,6 +179,27 @@ func (x *UserData) GetDisplayName() string {
return "" return ""
} }
func (x *UserData) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
func (x *UserData) GetDescription() string {
if x != nil {
return x.Description
}
return ""
}
func (x *UserData) GetAvatar() []byte {
if x != nil {
return x.Avatar
}
return nil
}
func (x *UserData) GetGroups() []string { func (x *UserData) GetGroups() []string {
if x != nil { if x != nil {
return x.Groups return x.Groups
@@ -201,27 +214,672 @@ func (x *UserData) GetIsActive() bool {
return false return false
} }
// Модель группы
type GroupData struct {
state protoimpl.MessageState `protogen:"open.v1"`
Dn string `protobuf:"bytes,1,opt,name=dn,proto3" json:"dn,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // Короткое имя группы (cn)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GroupData) Reset() {
*x = GroupData{}
mi := &file_ldap_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GroupData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupData) ProtoMessage() {}
func (x *GroupData) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupData.ProtoReflect.Descriptor instead.
func (*GroupData) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{3}
}
func (x *GroupData) GetDn() string {
if x != nil {
return x.Dn
}
return ""
}
func (x *GroupData) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// --- Авторизация ---
type VerifyRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VerifyRequest) Reset() {
*x = VerifyRequest{}
mi := &file_ldap_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VerifyRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VerifyRequest) ProtoMessage() {}
func (x *VerifyRequest) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VerifyRequest.ProtoReflect.Descriptor instead.
func (*VerifyRequest) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{4}
}
func (x *VerifyRequest) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *VerifyRequest) GetPassword() string {
if x != nil {
return x.Password
}
return ""
}
type VerifyResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
User *UserData `protobuf:"bytes,3,opt,name=user,proto3" json:"user,omitempty"` // Отдаем полные данные при успешном входе
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *VerifyResponse) Reset() {
*x = VerifyResponse{}
mi := &file_ldap_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *VerifyResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VerifyResponse) ProtoMessage() {}
func (x *VerifyResponse) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VerifyResponse.ProtoReflect.Descriptor instead.
func (*VerifyResponse) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{5}
}
func (x *VerifyResponse) GetSuccess() bool {
if x != nil {
return x.Success
}
return false
}
func (x *VerifyResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
func (x *VerifyResponse) GetUser() *UserData {
if x != nil {
return x.User
}
return nil
}
// --- Списки ---
type UserListResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
Users []*UserData `protobuf:"bytes,3,rep,name=users,proto3" json:"users,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *UserListResponse) Reset() {
*x = UserListResponse{}
mi := &file_ldap_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UserListResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserListResponse) ProtoMessage() {}
func (x *UserListResponse) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserListResponse.ProtoReflect.Descriptor instead.
func (*UserListResponse) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{6}
}
func (x *UserListResponse) GetSuccess() bool {
if x != nil {
return x.Success
}
return false
}
func (x *UserListResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
func (x *UserListResponse) GetUsers() []*UserData {
if x != nil {
return x.Users
}
return nil
}
type GroupListResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
Groups []*GroupData `protobuf:"bytes,3,rep,name=groups,proto3" json:"groups,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GroupListResponse) Reset() {
*x = GroupListResponse{}
mi := &file_ldap_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GroupListResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupListResponse) ProtoMessage() {}
func (x *GroupListResponse) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupListResponse.ProtoReflect.Descriptor instead.
func (*GroupListResponse) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{7}
}
func (x *GroupListResponse) GetSuccess() bool {
if x != nil {
return x.Success
}
return false
}
func (x *GroupListResponse) GetErrorMessage() string {
if x != nil {
return x.ErrorMessage
}
return ""
}
func (x *GroupListResponse) GetGroups() []*GroupData {
if x != nil {
return x.Groups
}
return nil
}
// --- Управление профилем ---
type CreateUserRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
FullName string `protobuf:"bytes,2,opt,name=full_name,json=fullName,proto3" json:"full_name,omitempty"`
Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
Email *string `protobuf:"bytes,4,opt,name=email,proto3,oneof" json:"email,omitempty"` // Сразу при создании можно задать почту
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *CreateUserRequest) Reset() {
*x = CreateUserRequest{}
mi := &file_ldap_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *CreateUserRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateUserRequest) ProtoMessage() {}
func (x *CreateUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use CreateUserRequest.ProtoReflect.Descriptor instead.
func (*CreateUserRequest) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{8}
}
func (x *CreateUserRequest) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *CreateUserRequest) GetFullName() string {
if x != nil {
return x.FullName
}
return ""
}
func (x *CreateUserRequest) GetPassword() string {
if x != nil {
return x.Password
}
return ""
}
func (x *CreateUserRequest) GetEmail() string {
if x != nil && x.Email != nil {
return *x.Email
}
return ""
}
// Запрос на обновление. Используем optional для частичного обновления.
type UpdateUserRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // Обязательное поле: кого обновляем
DisplayName *string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3,oneof" json:"display_name,omitempty"` // Новое ФИО (повлечет Rename CN)
Email *string `protobuf:"bytes,3,opt,name=email,proto3,oneof" json:"email,omitempty"` // Новая почта
Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"` // Новое описание
Avatar []byte `protobuf:"bytes,5,opt,name=avatar,proto3,oneof" json:"avatar,omitempty"` // Новая аватарка (бинарник картинки)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *UpdateUserRequest) Reset() {
*x = UpdateUserRequest{}
mi := &file_ldap_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UpdateUserRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateUserRequest) ProtoMessage() {}
func (x *UpdateUserRequest) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateUserRequest.ProtoReflect.Descriptor instead.
func (*UpdateUserRequest) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{9}
}
func (x *UpdateUserRequest) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *UpdateUserRequest) GetDisplayName() string {
if x != nil && x.DisplayName != nil {
return *x.DisplayName
}
return ""
}
func (x *UpdateUserRequest) GetEmail() string {
if x != nil && x.Email != nil {
return *x.Email
}
return ""
}
func (x *UpdateUserRequest) GetDescription() string {
if x != nil && x.Description != nil {
return *x.Description
}
return ""
}
func (x *UpdateUserRequest) GetAvatar() []byte {
if x != nil {
return x.Avatar
}
return nil
}
type ChangePasswordRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
NewPassword string `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ChangePasswordRequest) Reset() {
*x = ChangePasswordRequest{}
mi := &file_ldap_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ChangePasswordRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ChangePasswordRequest) ProtoMessage() {}
func (x *ChangePasswordRequest) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[10]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ChangePasswordRequest.ProtoReflect.Descriptor instead.
func (*ChangePasswordRequest) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{10}
}
func (x *ChangePasswordRequest) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *ChangePasswordRequest) GetNewPassword() string {
if x != nil {
return x.NewPassword
}
return ""
}
type ToggleStatusRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
SetActive bool `protobuf:"varint,2,opt,name=set_active,json=setActive,proto3" json:"set_active,omitempty"` // true - включить (512), false - отключить (514)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *ToggleStatusRequest) Reset() {
*x = ToggleStatusRequest{}
mi := &file_ldap_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *ToggleStatusRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ToggleStatusRequest) ProtoMessage() {}
func (x *ToggleStatusRequest) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ToggleStatusRequest.ProtoReflect.Descriptor instead.
func (*ToggleStatusRequest) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{11}
}
func (x *ToggleStatusRequest) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *ToggleStatusRequest) GetSetActive() bool {
if x != nil {
return x.SetActive
}
return false
}
// --- Управление членством в группах ---
type GroupMemberRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // Логин пользователя
GroupDn string `protobuf:"bytes,2,opt,name=group_dn,json=groupDn,proto3" json:"group_dn,omitempty"` // Полный путь группы (в которую добавляем / из которой удаляем)
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GroupMemberRequest) Reset() {
*x = GroupMemberRequest{}
mi := &file_ldap_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *GroupMemberRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupMemberRequest) ProtoMessage() {}
func (x *GroupMemberRequest) ProtoReflect() protoreflect.Message {
mi := &file_ldap_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupMemberRequest.ProtoReflect.Descriptor instead.
func (*GroupMemberRequest) Descriptor() ([]byte, []int) {
return file_ldap_proto_rawDescGZIP(), []int{12}
}
func (x *GroupMemberRequest) GetUsername() string {
if x != nil {
return x.Username
}
return ""
}
func (x *GroupMemberRequest) GetGroupDn() string {
if x != nil {
return x.GroupDn
}
return ""
}
var File_ldap_proto protoreflect.FileDescriptor var File_ldap_proto protoreflect.FileDescriptor
const file_ldap_proto_rawDesc = "" + const file_ldap_proto_rawDesc = "" +
"\n" + "\n" +
"\n" + "\n" +
"ldap.proto\x12\fldap_service\"G\n" + "ldap.proto\x12\fldap_service\"\x0e\n" +
"\fEmptyRequest\"O\n" +
"\x0eStatusResponse\x12\x18\n" +
"\asuccess\x18\x01 \x01(\bR\asuccess\x12#\n" +
"\rerror_message\x18\x02 \x01(\tR\ferrorMessage\"\xde\x01\n" +
"\bUserData\x12\x0e\n" +
"\x02dn\x18\x01 \x01(\tR\x02dn\x12\x1a\n" +
"\busername\x18\x02 \x01(\tR\busername\x12!\n" +
"\fdisplay_name\x18\x03 \x01(\tR\vdisplayName\x12\x14\n" +
"\x05email\x18\x04 \x01(\tR\x05email\x12 \n" +
"\vdescription\x18\x05 \x01(\tR\vdescription\x12\x16\n" +
"\x06avatar\x18\x06 \x01(\fR\x06avatar\x12\x16\n" +
"\x06groups\x18\a \x03(\tR\x06groups\x12\x1b\n" +
"\tis_active\x18\b \x01(\bR\bisActive\"/\n" +
"\tGroupData\x12\x0e\n" +
"\x02dn\x18\x01 \x01(\tR\x02dn\x12\x12\n" +
"\x04name\x18\x02 \x01(\tR\x04name\"G\n" +
"\rVerifyRequest\x12\x1a\n" + "\rVerifyRequest\x12\x1a\n" +
"\busername\x18\x01 \x01(\tR\busername\x12\x1a\n" + "\busername\x18\x01 \x01(\tR\busername\x12\x1a\n" +
"\bpassword\x18\x02 \x01(\tR\bpassword\"{\n" + "\bpassword\x18\x02 \x01(\tR\bpassword\"{\n" +
"\x0eVerifyResponse\x12\x18\n" + "\x0eVerifyResponse\x12\x18\n" +
"\asuccess\x18\x01 \x01(\bR\asuccess\x12#\n" + "\asuccess\x18\x01 \x01(\bR\asuccess\x12#\n" +
"\rerror_message\x18\x02 \x01(\tR\ferrorMessage\x12*\n" + "\rerror_message\x18\x02 \x01(\tR\ferrorMessage\x12*\n" +
"\x04user\x18\x03 \x01(\v2\x16.ldap_service.UserDataR\x04user\"r\n" + "\x04user\x18\x03 \x01(\v2\x16.ldap_service.UserDataR\x04user\"\x7f\n" +
"\bUserData\x12\x0e\n" + "\x10UserListResponse\x12\x18\n" +
"\x02dn\x18\x01 \x01(\tR\x02dn\x12!\n" + "\asuccess\x18\x01 \x01(\bR\asuccess\x12#\n" +
"\fdisplay_name\x18\x02 \x01(\tR\vdisplayName\x12\x16\n" + "\rerror_message\x18\x02 \x01(\tR\ferrorMessage\x12,\n" +
"\x06groups\x18\x03 \x03(\tR\x06groups\x12\x1b\n" + "\x05users\x18\x03 \x03(\v2\x16.ldap_service.UserDataR\x05users\"\x83\x01\n" +
"\tis_active\x18\x04 \x01(\bR\bisActive2S\n" + "\x11GroupListResponse\x12\x18\n" +
"\asuccess\x18\x01 \x01(\bR\asuccess\x12#\n" +
"\rerror_message\x18\x02 \x01(\tR\ferrorMessage\x12/\n" +
"\x06groups\x18\x03 \x03(\v2\x17.ldap_service.GroupDataR\x06groups\"\x8d\x01\n" +
"\x11CreateUserRequest\x12\x1a\n" +
"\busername\x18\x01 \x01(\tR\busername\x12\x1b\n" +
"\tfull_name\x18\x02 \x01(\tR\bfullName\x12\x1a\n" +
"\bpassword\x18\x03 \x01(\tR\bpassword\x12\x19\n" +
"\x05email\x18\x04 \x01(\tH\x00R\x05email\x88\x01\x01B\b\n" +
"\x06_email\"\xec\x01\n" +
"\x11UpdateUserRequest\x12\x1a\n" +
"\busername\x18\x01 \x01(\tR\busername\x12&\n" +
"\fdisplay_name\x18\x02 \x01(\tH\x00R\vdisplayName\x88\x01\x01\x12\x19\n" +
"\x05email\x18\x03 \x01(\tH\x01R\x05email\x88\x01\x01\x12%\n" +
"\vdescription\x18\x04 \x01(\tH\x02R\vdescription\x88\x01\x01\x12\x1b\n" +
"\x06avatar\x18\x05 \x01(\fH\x03R\x06avatar\x88\x01\x01B\x0f\n" +
"\r_display_nameB\b\n" +
"\x06_emailB\x0e\n" +
"\f_descriptionB\t\n" +
"\a_avatar\"V\n" +
"\x15ChangePasswordRequest\x12\x1a\n" +
"\busername\x18\x01 \x01(\tR\busername\x12!\n" +
"\fnew_password\x18\x02 \x01(\tR\vnewPassword\"P\n" +
"\x13ToggleStatusRequest\x12\x1a\n" +
"\busername\x18\x01 \x01(\tR\busername\x12\x1d\n" +
"\n" +
"set_active\x18\x02 \x01(\bR\tsetActive\"K\n" +
"\x12GroupMemberRequest\x12\x1a\n" +
"\busername\x18\x01 \x01(\tR\busername\x12\x19\n" +
"\bgroup_dn\x18\x02 \x01(\tR\agroupDn2\xd2\x05\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.VerifyResponse\x12F\n" +
"\bGetUsers\x12\x1a.ldap_service.EmptyRequest\x1a\x1e.ldap_service.UserListResponse\x12K\n" +
"\n" +
"CreateUser\x12\x1f.ldap_service.CreateUserRequest\x1a\x1c.ldap_service.StatusResponse\x12K\n" +
"\n" +
"UpdateUser\x12\x1f.ldap_service.UpdateUserRequest\x1a\x1c.ldap_service.StatusResponse\x12S\n" +
"\x0eChangePassword\x12#.ldap_service.ChangePasswordRequest\x1a\x1c.ldap_service.StatusResponse\x12S\n" +
"\x10ToggleUserStatus\x12!.ldap_service.ToggleStatusRequest\x1a\x1c.ldap_service.StatusResponse\x12H\n" +
"\tGetGroups\x12\x1a.ldap_service.EmptyRequest\x1a\x1f.ldap_service.GroupListResponse\x12P\n" +
"\x0eAddUserToGroup\x12 .ldap_service.GroupMemberRequest\x1a\x1c.ldap_service.StatusResponse\x12U\n" +
"\x13RemoveUserFromGroup\x12 .ldap_service.GroupMemberRequest\x1a\x1c.ldap_service.StatusResponseB*Z(git.lendry.ru/lendry-erp/proto.git/go;pbb\x06proto3"
var ( var (
file_ldap_proto_rawDescOnce sync.Once file_ldap_proto_rawDescOnce sync.Once
@@ -235,21 +893,49 @@ func file_ldap_proto_rawDescGZIP() []byte {
return file_ldap_proto_rawDescData return file_ldap_proto_rawDescData
} }
var file_ldap_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_ldap_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_ldap_proto_goTypes = []any{ var file_ldap_proto_goTypes = []any{
(*VerifyRequest)(nil), // 0: ldap_service.VerifyRequest (*EmptyRequest)(nil), // 0: ldap_service.EmptyRequest
(*VerifyResponse)(nil), // 1: ldap_service.VerifyResponse (*StatusResponse)(nil), // 1: ldap_service.StatusResponse
(*UserData)(nil), // 2: ldap_service.UserData (*UserData)(nil), // 2: ldap_service.UserData
(*GroupData)(nil), // 3: ldap_service.GroupData
(*VerifyRequest)(nil), // 4: ldap_service.VerifyRequest
(*VerifyResponse)(nil), // 5: ldap_service.VerifyResponse
(*UserListResponse)(nil), // 6: ldap_service.UserListResponse
(*GroupListResponse)(nil), // 7: ldap_service.GroupListResponse
(*CreateUserRequest)(nil), // 8: ldap_service.CreateUserRequest
(*UpdateUserRequest)(nil), // 9: ldap_service.UpdateUserRequest
(*ChangePasswordRequest)(nil), // 10: ldap_service.ChangePasswordRequest
(*ToggleStatusRequest)(nil), // 11: ldap_service.ToggleStatusRequest
(*GroupMemberRequest)(nil), // 12: ldap_service.GroupMemberRequest
} }
var file_ldap_proto_depIdxs = []int32{ var file_ldap_proto_depIdxs = []int32{
2, // 0: ldap_service.VerifyResponse.user:type_name -> ldap_service.UserData 2, // 0: ldap_service.VerifyResponse.user:type_name -> ldap_service.UserData
0, // 1: ldap_service.LdapAuth.VerifyUser:input_type -> ldap_service.VerifyRequest 2, // 1: ldap_service.UserListResponse.users:type_name -> ldap_service.UserData
1, // 2: ldap_service.LdapAuth.VerifyUser:output_type -> ldap_service.VerifyResponse 3, // 2: ldap_service.GroupListResponse.groups:type_name -> ldap_service.GroupData
2, // [2:3] is the sub-list for method output_type 4, // 3: ldap_service.LdapAuth.VerifyUser:input_type -> ldap_service.VerifyRequest
1, // [1:2] is the sub-list for method input_type 0, // 4: ldap_service.LdapAuth.GetUsers:input_type -> ldap_service.EmptyRequest
1, // [1:1] is the sub-list for extension type_name 8, // 5: ldap_service.LdapAuth.CreateUser:input_type -> ldap_service.CreateUserRequest
1, // [1:1] is the sub-list for extension extendee 9, // 6: ldap_service.LdapAuth.UpdateUser:input_type -> ldap_service.UpdateUserRequest
0, // [0:1] is the sub-list for field type_name 10, // 7: ldap_service.LdapAuth.ChangePassword:input_type -> ldap_service.ChangePasswordRequest
11, // 8: ldap_service.LdapAuth.ToggleUserStatus:input_type -> ldap_service.ToggleStatusRequest
0, // 9: ldap_service.LdapAuth.GetGroups:input_type -> ldap_service.EmptyRequest
12, // 10: ldap_service.LdapAuth.AddUserToGroup:input_type -> ldap_service.GroupMemberRequest
12, // 11: ldap_service.LdapAuth.RemoveUserFromGroup:input_type -> ldap_service.GroupMemberRequest
5, // 12: ldap_service.LdapAuth.VerifyUser:output_type -> ldap_service.VerifyResponse
6, // 13: ldap_service.LdapAuth.GetUsers:output_type -> ldap_service.UserListResponse
1, // 14: ldap_service.LdapAuth.CreateUser:output_type -> ldap_service.StatusResponse
1, // 15: ldap_service.LdapAuth.UpdateUser:output_type -> ldap_service.StatusResponse
1, // 16: ldap_service.LdapAuth.ChangePassword:output_type -> ldap_service.StatusResponse
1, // 17: ldap_service.LdapAuth.ToggleUserStatus:output_type -> ldap_service.StatusResponse
7, // 18: ldap_service.LdapAuth.GetGroups:output_type -> ldap_service.GroupListResponse
1, // 19: ldap_service.LdapAuth.AddUserToGroup:output_type -> ldap_service.StatusResponse
1, // 20: ldap_service.LdapAuth.RemoveUserFromGroup:output_type -> ldap_service.StatusResponse
12, // [12:21] is the sub-list for method output_type
3, // [3:12] is the sub-list for method input_type
3, // [3:3] is the sub-list for extension type_name
3, // [3:3] is the sub-list for extension extendee
0, // [0:3] is the sub-list for field type_name
} }
func init() { file_ldap_proto_init() } func init() { file_ldap_proto_init() }
@@ -257,13 +943,15 @@ func file_ldap_proto_init() {
if File_ldap_proto != nil { if File_ldap_proto != nil {
return return
} }
file_ldap_proto_msgTypes[8].OneofWrappers = []any{}
file_ldap_proto_msgTypes[9].OneofWrappers = []any{}
type x struct{} type x struct{}
out := protoimpl.TypeBuilder{ out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{ File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_ldap_proto_rawDesc), len(file_ldap_proto_rawDesc)), RawDescriptor: unsafe.Slice(unsafe.StringData(file_ldap_proto_rawDesc), len(file_ldap_proto_rawDesc)),
NumEnums: 0, NumEnums: 0,
NumMessages: 3, NumMessages: 13,
NumExtensions: 0, NumExtensions: 0,
NumServices: 1, NumServices: 1,
}, },

View File

@@ -4,7 +4,7 @@
// - protoc v3.21.12 // - protoc v3.21.12
// source: ldap.proto // source: ldap.proto
package ldap_service package pb
import ( import (
context "context" context "context"
@@ -19,14 +19,37 @@ import (
const _ = grpc.SupportPackageIsVersion9 const _ = grpc.SupportPackageIsVersion9
const ( const (
LdapAuth_VerifyUser_FullMethodName = "/ldap_service.LdapAuth/VerifyUser" LdapAuth_VerifyUser_FullMethodName = "/ldap_service.LdapAuth/VerifyUser"
LdapAuth_GetUsers_FullMethodName = "/ldap_service.LdapAuth/GetUsers"
LdapAuth_CreateUser_FullMethodName = "/ldap_service.LdapAuth/CreateUser"
LdapAuth_UpdateUser_FullMethodName = "/ldap_service.LdapAuth/UpdateUser"
LdapAuth_ChangePassword_FullMethodName = "/ldap_service.LdapAuth/ChangePassword"
LdapAuth_ToggleUserStatus_FullMethodName = "/ldap_service.LdapAuth/ToggleUserStatus"
LdapAuth_GetGroups_FullMethodName = "/ldap_service.LdapAuth/GetGroups"
LdapAuth_AddUserToGroup_FullMethodName = "/ldap_service.LdapAuth/AddUserToGroup"
LdapAuth_RemoveUserFromGroup_FullMethodName = "/ldap_service.LdapAuth/RemoveUserFromGroup"
) )
// LdapAuthClient is the client API for LdapAuth service. // LdapAuthClient is the client API for LdapAuth service.
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
//
// ==========================================
// ГЛАВНЫЙ СЕРВИС
// ==========================================
type LdapAuthClient interface { type LdapAuthClient interface {
// --- Вектор 1: Авторизация (Bind от имени пользователя) ---
VerifyUser(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*VerifyResponse, error) VerifyUser(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*VerifyResponse, error)
// --- Вектор 2: Управление Пользователями (Bind системного аккаунта) ---
GetUsers(ctx context.Context, in *EmptyRequest, opts ...grpc.CallOption) (*UserListResponse, error)
CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*StatusResponse, error)
UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*StatusResponse, error)
ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*StatusResponse, error)
ToggleUserStatus(ctx context.Context, in *ToggleStatusRequest, opts ...grpc.CallOption) (*StatusResponse, error)
// --- Вектор 3: Управление Группами ---
GetGroups(ctx context.Context, in *EmptyRequest, opts ...grpc.CallOption) (*GroupListResponse, error)
AddUserToGroup(ctx context.Context, in *GroupMemberRequest, opts ...grpc.CallOption) (*StatusResponse, error)
RemoveUserFromGroup(ctx context.Context, in *GroupMemberRequest, opts ...grpc.CallOption) (*StatusResponse, error)
} }
type ldapAuthClient struct { type ldapAuthClient struct {
@@ -47,11 +70,106 @@ func (c *ldapAuthClient) VerifyUser(ctx context.Context, in *VerifyRequest, opts
return out, nil return out, nil
} }
func (c *ldapAuthClient) GetUsers(ctx context.Context, in *EmptyRequest, opts ...grpc.CallOption) (*UserListResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(UserListResponse)
err := c.cc.Invoke(ctx, LdapAuth_GetUsers_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ldapAuthClient) CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*StatusResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(StatusResponse)
err := c.cc.Invoke(ctx, LdapAuth_CreateUser_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ldapAuthClient) UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*StatusResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(StatusResponse)
err := c.cc.Invoke(ctx, LdapAuth_UpdateUser_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ldapAuthClient) ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*StatusResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(StatusResponse)
err := c.cc.Invoke(ctx, LdapAuth_ChangePassword_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ldapAuthClient) ToggleUserStatus(ctx context.Context, in *ToggleStatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(StatusResponse)
err := c.cc.Invoke(ctx, LdapAuth_ToggleUserStatus_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ldapAuthClient) GetGroups(ctx context.Context, in *EmptyRequest, opts ...grpc.CallOption) (*GroupListResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(GroupListResponse)
err := c.cc.Invoke(ctx, LdapAuth_GetGroups_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ldapAuthClient) AddUserToGroup(ctx context.Context, in *GroupMemberRequest, opts ...grpc.CallOption) (*StatusResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(StatusResponse)
err := c.cc.Invoke(ctx, LdapAuth_AddUserToGroup_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *ldapAuthClient) RemoveUserFromGroup(ctx context.Context, in *GroupMemberRequest, opts ...grpc.CallOption) (*StatusResponse, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(StatusResponse)
err := c.cc.Invoke(ctx, LdapAuth_RemoveUserFromGroup_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
// LdapAuthServer is the server API for LdapAuth service. // LdapAuthServer is the server API for LdapAuth service.
// All implementations must embed UnimplementedLdapAuthServer // All implementations must embed UnimplementedLdapAuthServer
// for forward compatibility. // for forward compatibility.
//
// ==========================================
// ГЛАВНЫЙ СЕРВИС
// ==========================================
type LdapAuthServer interface { type LdapAuthServer interface {
// --- Вектор 1: Авторизация (Bind от имени пользователя) ---
VerifyUser(context.Context, *VerifyRequest) (*VerifyResponse, error) VerifyUser(context.Context, *VerifyRequest) (*VerifyResponse, error)
// --- Вектор 2: Управление Пользователями (Bind системного аккаунта) ---
GetUsers(context.Context, *EmptyRequest) (*UserListResponse, error)
CreateUser(context.Context, *CreateUserRequest) (*StatusResponse, error)
UpdateUser(context.Context, *UpdateUserRequest) (*StatusResponse, error)
ChangePassword(context.Context, *ChangePasswordRequest) (*StatusResponse, error)
ToggleUserStatus(context.Context, *ToggleStatusRequest) (*StatusResponse, error)
// --- Вектор 3: Управление Группами ---
GetGroups(context.Context, *EmptyRequest) (*GroupListResponse, error)
AddUserToGroup(context.Context, *GroupMemberRequest) (*StatusResponse, error)
RemoveUserFromGroup(context.Context, *GroupMemberRequest) (*StatusResponse, error)
mustEmbedUnimplementedLdapAuthServer() mustEmbedUnimplementedLdapAuthServer()
} }
@@ -65,6 +183,30 @@ type UnimplementedLdapAuthServer struct{}
func (UnimplementedLdapAuthServer) VerifyUser(context.Context, *VerifyRequest) (*VerifyResponse, error) { func (UnimplementedLdapAuthServer) VerifyUser(context.Context, *VerifyRequest) (*VerifyResponse, error) {
return nil, status.Error(codes.Unimplemented, "method VerifyUser not implemented") return nil, status.Error(codes.Unimplemented, "method VerifyUser not implemented")
} }
func (UnimplementedLdapAuthServer) GetUsers(context.Context, *EmptyRequest) (*UserListResponse, error) {
return nil, status.Error(codes.Unimplemented, "method GetUsers not implemented")
}
func (UnimplementedLdapAuthServer) CreateUser(context.Context, *CreateUserRequest) (*StatusResponse, error) {
return nil, status.Error(codes.Unimplemented, "method CreateUser not implemented")
}
func (UnimplementedLdapAuthServer) UpdateUser(context.Context, *UpdateUserRequest) (*StatusResponse, error) {
return nil, status.Error(codes.Unimplemented, "method UpdateUser not implemented")
}
func (UnimplementedLdapAuthServer) ChangePassword(context.Context, *ChangePasswordRequest) (*StatusResponse, error) {
return nil, status.Error(codes.Unimplemented, "method ChangePassword not implemented")
}
func (UnimplementedLdapAuthServer) ToggleUserStatus(context.Context, *ToggleStatusRequest) (*StatusResponse, error) {
return nil, status.Error(codes.Unimplemented, "method ToggleUserStatus not implemented")
}
func (UnimplementedLdapAuthServer) GetGroups(context.Context, *EmptyRequest) (*GroupListResponse, error) {
return nil, status.Error(codes.Unimplemented, "method GetGroups not implemented")
}
func (UnimplementedLdapAuthServer) AddUserToGroup(context.Context, *GroupMemberRequest) (*StatusResponse, error) {
return nil, status.Error(codes.Unimplemented, "method AddUserToGroup not implemented")
}
func (UnimplementedLdapAuthServer) RemoveUserFromGroup(context.Context, *GroupMemberRequest) (*StatusResponse, error) {
return nil, status.Error(codes.Unimplemented, "method RemoveUserFromGroup not implemented")
}
func (UnimplementedLdapAuthServer) mustEmbedUnimplementedLdapAuthServer() {} func (UnimplementedLdapAuthServer) mustEmbedUnimplementedLdapAuthServer() {}
func (UnimplementedLdapAuthServer) testEmbeddedByValue() {} func (UnimplementedLdapAuthServer) testEmbeddedByValue() {}
@@ -104,6 +246,150 @@ func _LdapAuth_VerifyUser_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _LdapAuth_GetUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(EmptyRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LdapAuthServer).GetUsers(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: LdapAuth_GetUsers_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LdapAuthServer).GetUsers(ctx, req.(*EmptyRequest))
}
return interceptor(ctx, in, info, handler)
}
func _LdapAuth_CreateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateUserRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LdapAuthServer).CreateUser(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: LdapAuth_CreateUser_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LdapAuthServer).CreateUser(ctx, req.(*CreateUserRequest))
}
return interceptor(ctx, in, info, handler)
}
func _LdapAuth_UpdateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateUserRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LdapAuthServer).UpdateUser(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: LdapAuth_UpdateUser_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LdapAuthServer).UpdateUser(ctx, req.(*UpdateUserRequest))
}
return interceptor(ctx, in, info, handler)
}
func _LdapAuth_ChangePassword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ChangePasswordRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LdapAuthServer).ChangePassword(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: LdapAuth_ChangePassword_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LdapAuthServer).ChangePassword(ctx, req.(*ChangePasswordRequest))
}
return interceptor(ctx, in, info, handler)
}
func _LdapAuth_ToggleUserStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ToggleStatusRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LdapAuthServer).ToggleUserStatus(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: LdapAuth_ToggleUserStatus_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LdapAuthServer).ToggleUserStatus(ctx, req.(*ToggleStatusRequest))
}
return interceptor(ctx, in, info, handler)
}
func _LdapAuth_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(EmptyRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LdapAuthServer).GetGroups(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: LdapAuth_GetGroups_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LdapAuthServer).GetGroups(ctx, req.(*EmptyRequest))
}
return interceptor(ctx, in, info, handler)
}
func _LdapAuth_AddUserToGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GroupMemberRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LdapAuthServer).AddUserToGroup(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: LdapAuth_AddUserToGroup_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LdapAuthServer).AddUserToGroup(ctx, req.(*GroupMemberRequest))
}
return interceptor(ctx, in, info, handler)
}
func _LdapAuth_RemoveUserFromGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GroupMemberRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LdapAuthServer).RemoveUserFromGroup(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: LdapAuth_RemoveUserFromGroup_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LdapAuthServer).RemoveUserFromGroup(ctx, req.(*GroupMemberRequest))
}
return interceptor(ctx, in, info, handler)
}
// LdapAuth_ServiceDesc is the grpc.ServiceDesc for LdapAuth service. // LdapAuth_ServiceDesc is the grpc.ServiceDesc for LdapAuth service.
// It's only intended for direct use with grpc.RegisterService, // It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy) // and not to be introspected or modified (even as a copy)
@@ -115,6 +401,38 @@ var LdapAuth_ServiceDesc = grpc.ServiceDesc{
MethodName: "VerifyUser", MethodName: "VerifyUser",
Handler: _LdapAuth_VerifyUser_Handler, Handler: _LdapAuth_VerifyUser_Handler,
}, },
{
MethodName: "GetUsers",
Handler: _LdapAuth_GetUsers_Handler,
},
{
MethodName: "CreateUser",
Handler: _LdapAuth_CreateUser_Handler,
},
{
MethodName: "UpdateUser",
Handler: _LdapAuth_UpdateUser_Handler,
},
{
MethodName: "ChangePassword",
Handler: _LdapAuth_ChangePassword_Handler,
},
{
MethodName: "ToggleUserStatus",
Handler: _LdapAuth_ToggleUserStatus_Handler,
},
{
MethodName: "GetGroups",
Handler: _LdapAuth_GetGroups_Handler,
},
{
MethodName: "AddUserToGroup",
Handler: _LdapAuth_AddUserToGroup_Handler,
},
{
MethodName: "RemoveUserFromGroup",
Handler: _LdapAuth_RemoveUserFromGroup_Handler,
},
}, },
Streams: []grpc.StreamDesc{}, Streams: []grpc.StreamDesc{},
Metadata: "ldap.proto", Metadata: "ldap.proto",

View File

@@ -5,6 +5,7 @@
// source: identity.proto // source: identity.proto
/* eslint-disable */ /* eslint-disable */
import type { Metadata } from "@grpc/grpc-js";
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices"; import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
import { Observable } from "rxjs"; import { Observable } from "rxjs";
@@ -43,6 +44,30 @@ export interface LogoutResponse {
message: string; message: string;
} }
export interface VerifyTokenRequest {
token: string;
}
export interface VerifyTokenResponse {
isValid: boolean;
errorMessage?: string | undefined;
id?: string | undefined;
username?: string | undefined;
roleLevel?: number | undefined;
permissions: string[];
sessionId?: string | undefined;
requiresPin?: boolean | undefined;
}
export interface GetAccountRoleLevelRequest {
accountId: string;
}
export interface GetAccountRoleLevelResponse {
found: boolean;
roleLevel: number;
}
export interface UnlockPinRequest { export interface UnlockPinRequest {
accessToken: string; accessToken: string;
pinCode: string; pinCode: string;
@@ -149,32 +174,77 @@ export interface DisableTelegramResponse {
export const IDENTITY_PACKAGE_NAME = "identity"; export const IDENTITY_PACKAGE_NAME = "identity";
export interface AuthServiceClient { export interface AuthServiceClient {
login(request: LoginRequest): Observable<LoginResponse>; login(request: LoginRequest, metadata?: Metadata): Observable<LoginResponse>;
refresh(request: RefreshRequest): Observable<RefreshResponse>; refresh(request: RefreshRequest, metadata?: Metadata): Observable<RefreshResponse>;
logout(request: LogoutRequest): Observable<LogoutResponse>; verifyToken(request: VerifyTokenRequest, metadata?: Metadata): Observable<VerifyTokenResponse>;
unlockPin(request: UnlockPinRequest): Observable<UnlockPinResponse>; getAccountRoleLevel(
request: GetAccountRoleLevelRequest,
metadata?: Metadata,
): Observable<GetAccountRoleLevelResponse>;
verify2Fa(request: Verify2FaRequest): Observable<Verify2FaResponse>; logout(request: LogoutRequest, metadata?: Metadata): Observable<LogoutResponse>;
logoutAll(request: LogoutRequest, metadata?: Metadata): Observable<LogoutResponse>;
unlockPin(request: UnlockPinRequest, metadata?: Metadata): Observable<UnlockPinResponse>;
verify2Fa(request: Verify2FaRequest, metadata?: Metadata): Observable<Verify2FaResponse>;
} }
export interface AuthServiceController { export interface AuthServiceController {
login(request: LoginRequest): Promise<LoginResponse> | Observable<LoginResponse> | LoginResponse; login(request: LoginRequest, metadata?: Metadata): Promise<LoginResponse> | Observable<LoginResponse> | LoginResponse;
refresh(request: RefreshRequest): Promise<RefreshResponse> | Observable<RefreshResponse> | RefreshResponse; refresh(
request: RefreshRequest,
metadata?: Metadata,
): Promise<RefreshResponse> | Observable<RefreshResponse> | RefreshResponse;
logout(request: LogoutRequest): Promise<LogoutResponse> | Observable<LogoutResponse> | LogoutResponse; verifyToken(
request: VerifyTokenRequest,
metadata?: Metadata,
): Promise<VerifyTokenResponse> | Observable<VerifyTokenResponse> | VerifyTokenResponse;
unlockPin(request: UnlockPinRequest): Promise<UnlockPinResponse> | Observable<UnlockPinResponse> | UnlockPinResponse; getAccountRoleLevel(
request: GetAccountRoleLevelRequest,
metadata?: Metadata,
): Promise<GetAccountRoleLevelResponse> | Observable<GetAccountRoleLevelResponse> | GetAccountRoleLevelResponse;
verify2Fa(request: Verify2FaRequest): Promise<Verify2FaResponse> | Observable<Verify2FaResponse> | Verify2FaResponse; logout(
request: LogoutRequest,
metadata?: Metadata,
): Promise<LogoutResponse> | Observable<LogoutResponse> | LogoutResponse;
logoutAll(
request: LogoutRequest,
metadata?: Metadata,
): Promise<LogoutResponse> | Observable<LogoutResponse> | LogoutResponse;
unlockPin(
request: UnlockPinRequest,
metadata?: Metadata,
): Promise<UnlockPinResponse> | Observable<UnlockPinResponse> | UnlockPinResponse;
verify2Fa(
request: Verify2FaRequest,
metadata?: Metadata,
): Promise<Verify2FaResponse> | Observable<Verify2FaResponse> | Verify2FaResponse;
} }
export function AuthServiceControllerMethods() { export function AuthServiceControllerMethods() {
return function (constructor: Function) { return function (constructor: Function) {
const grpcMethods: string[] = ["login", "refresh", "logout", "unlockPin", "verify2Fa"]; const grpcMethods: string[] = [
"login",
"refresh",
"verifyToken",
"getAccountRoleLevel",
"logout",
"logoutAll",
"unlockPin",
"verify2Fa",
];
for (const method of grpcMethods) { for (const method of grpcMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcMethod("AuthService", method)(constructor.prototype[method], method, descriptor); GrpcMethod("AuthService", method)(constructor.prototype[method], method, descriptor);
@@ -190,46 +260,67 @@ export function AuthServiceControllerMethods() {
export const AUTH_SERVICE_NAME = "AuthService"; export const AUTH_SERVICE_NAME = "AuthService";
export interface TwoFaServiceClient { export interface TwoFaServiceClient {
getTwoFaStatus(request: GetTwoFaStatusRequest): Observable<GetTwoFaStatusResponse>; getTwoFaStatus(request: GetTwoFaStatusRequest, metadata?: Metadata): Observable<GetTwoFaStatusResponse>;
startTotpEnrollment(request: AuthenticatedAccessRequest): Observable<StartTotpEnrollmentResponse>; startTotpEnrollment(
request: AuthenticatedAccessRequest,
metadata?: Metadata,
): Observable<StartTotpEnrollmentResponse>;
confirmTotpErollment(request: ConfirmTotpEnrollmentRequest): Observable<ConfirmTotpEnrollmentResponse>; confirmTotpErollment(
request: ConfirmTotpEnrollmentRequest,
metadata?: Metadata,
): Observable<ConfirmTotpEnrollmentResponse>;
cancelTotpEnrollment(request: AuthenticatedAccessRequest): Observable<CancelTotpEnrollmentResponse>; cancelTotpEnrollment(
request: AuthenticatedAccessRequest,
metadata?: Metadata,
): Observable<CancelTotpEnrollmentResponse>;
disableTotp(request: DisableTotpRequest): Observable<DisableTotpResponse>; disableTotp(request: DisableTotpRequest, metadata?: Metadata): Observable<DisableTotpResponse>;
startTelegramEnrollment(request: AuthenticatedAccessRequest): Observable<StartTelegramEnrollmentResponse>; startTelegramEnrollment(
request: AuthenticatedAccessRequest,
metadata?: Metadata,
): Observable<StartTelegramEnrollmentResponse>;
confirmTelegramEnrollment(request: ConfirmTelegramEnrollmentRequest): Observable<ConfirmTelegramEnrollmentResponse>; confirmTelegramEnrollment(
request: ConfirmTelegramEnrollmentRequest,
metadata?: Metadata,
): Observable<ConfirmTelegramEnrollmentResponse>;
disableTelegram(request: DisableTelegramRequest): Observable<DisableTelegramResponse>; disableTelegram(request: DisableTelegramRequest, metadata?: Metadata): Observable<DisableTelegramResponse>;
} }
export interface TwoFaServiceController { export interface TwoFaServiceController {
getTwoFaStatus( getTwoFaStatus(
request: GetTwoFaStatusRequest, request: GetTwoFaStatusRequest,
metadata?: Metadata,
): Promise<GetTwoFaStatusResponse> | Observable<GetTwoFaStatusResponse> | GetTwoFaStatusResponse; ): Promise<GetTwoFaStatusResponse> | Observable<GetTwoFaStatusResponse> | GetTwoFaStatusResponse;
startTotpEnrollment( startTotpEnrollment(
request: AuthenticatedAccessRequest, request: AuthenticatedAccessRequest,
metadata?: Metadata,
): Promise<StartTotpEnrollmentResponse> | Observable<StartTotpEnrollmentResponse> | StartTotpEnrollmentResponse; ): Promise<StartTotpEnrollmentResponse> | Observable<StartTotpEnrollmentResponse> | StartTotpEnrollmentResponse;
confirmTotpErollment( confirmTotpErollment(
request: ConfirmTotpEnrollmentRequest, request: ConfirmTotpEnrollmentRequest,
metadata?: Metadata,
): Promise<ConfirmTotpEnrollmentResponse> | Observable<ConfirmTotpEnrollmentResponse> | ConfirmTotpEnrollmentResponse; ): Promise<ConfirmTotpEnrollmentResponse> | Observable<ConfirmTotpEnrollmentResponse> | ConfirmTotpEnrollmentResponse;
cancelTotpEnrollment( cancelTotpEnrollment(
request: AuthenticatedAccessRequest, request: AuthenticatedAccessRequest,
metadata?: Metadata,
): Promise<CancelTotpEnrollmentResponse> | Observable<CancelTotpEnrollmentResponse> | CancelTotpEnrollmentResponse; ): Promise<CancelTotpEnrollmentResponse> | Observable<CancelTotpEnrollmentResponse> | CancelTotpEnrollmentResponse;
disableTotp( disableTotp(
request: DisableTotpRequest, request: DisableTotpRequest,
metadata?: Metadata,
): Promise<DisableTotpResponse> | Observable<DisableTotpResponse> | DisableTotpResponse; ): Promise<DisableTotpResponse> | Observable<DisableTotpResponse> | DisableTotpResponse;
startTelegramEnrollment( startTelegramEnrollment(
request: AuthenticatedAccessRequest, request: AuthenticatedAccessRequest,
metadata?: Metadata,
): ):
| Promise<StartTelegramEnrollmentResponse> | Promise<StartTelegramEnrollmentResponse>
| Observable<StartTelegramEnrollmentResponse> | Observable<StartTelegramEnrollmentResponse>
@@ -237,6 +328,7 @@ export interface TwoFaServiceController {
confirmTelegramEnrollment( confirmTelegramEnrollment(
request: ConfirmTelegramEnrollmentRequest, request: ConfirmTelegramEnrollmentRequest,
metadata?: Metadata,
): ):
| Promise<ConfirmTelegramEnrollmentResponse> | Promise<ConfirmTelegramEnrollmentResponse>
| Observable<ConfirmTelegramEnrollmentResponse> | Observable<ConfirmTelegramEnrollmentResponse>
@@ -244,6 +336,7 @@ export interface TwoFaServiceController {
disableTelegram( disableTelegram(
request: DisableTelegramRequest, request: DisableTelegramRequest,
metadata?: Metadata,
): Promise<DisableTelegramResponse> | Observable<DisableTelegramResponse> | DisableTelegramResponse; ): Promise<DisableTelegramResponse> | Observable<DisableTelegramResponse> | DisableTelegramResponse;
} }

View File

@@ -5,11 +5,54 @@
// source: ldap.proto // source: ldap.proto
/* eslint-disable */ /* eslint-disable */
import type { Metadata } from "@grpc/grpc-js";
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices"; import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
import { Observable } from "rxjs"; import { Observable } from "rxjs";
export const protobufPackage = "ldap_service"; 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 { export interface VerifyRequest {
username: string; username: string;
password: string; password: string;
@@ -18,29 +61,177 @@ export interface VerifyRequest {
export interface VerifyResponse { export interface VerifyResponse {
success: boolean; success: boolean;
errorMessage: string; errorMessage: string;
/** Отдаем полные данные при успешном входе */
user: UserData | undefined; user: UserData | undefined;
} }
export interface UserData { /** --- Списки --- */
dn: string; export interface UserListResponse {
displayName: string; success: boolean;
groups: string[]; errorMessage: string;
isActive: boolean; 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 const LDAP_SERVICE_PACKAGE_NAME = "ldap_service";
/**
* ==========================================
* ГЛАВНЫЙ СЕРВИС
* ==========================================
*/
export interface LdapAuthClient { export interface LdapAuthClient {
verifyUser(request: VerifyRequest): Observable<VerifyResponse>; /** --- Вектор 1: Авторизация (Bind от имени пользователя) --- */
verifyUser(request: VerifyRequest, metadata?: Metadata): Observable<VerifyResponse>;
/** --- Вектор 2: Управление Пользователями (Bind системного аккаунта) --- */
getUsers(request: EmptyRequest, metadata?: Metadata): Observable<UserListResponse>;
createUser(request: CreateUserRequest, metadata?: Metadata): Observable<StatusResponse>;
updateUser(request: UpdateUserRequest, metadata?: Metadata): Observable<StatusResponse>;
changePassword(request: ChangePasswordRequest, metadata?: Metadata): Observable<StatusResponse>;
toggleUserStatus(request: ToggleStatusRequest, metadata?: Metadata): Observable<StatusResponse>;
/** --- Вектор 3: Управление Группами --- */
getGroups(request: EmptyRequest, metadata?: Metadata): Observable<GroupListResponse>;
addUserToGroup(request: GroupMemberRequest, metadata?: Metadata): Observable<StatusResponse>;
removeUserFromGroup(request: GroupMemberRequest, metadata?: Metadata): Observable<StatusResponse>;
} }
/**
* ==========================================
* ГЛАВНЫЙ СЕРВИС
* ==========================================
*/
export interface LdapAuthController { export interface LdapAuthController {
verifyUser(request: VerifyRequest): Promise<VerifyResponse> | Observable<VerifyResponse> | VerifyResponse; /** --- Вектор 1: Авторизация (Bind от имени пользователя) --- */
verifyUser(
request: VerifyRequest,
metadata?: Metadata,
): Promise<VerifyResponse> | Observable<VerifyResponse> | VerifyResponse;
/** --- Вектор 2: Управление Пользователями (Bind системного аккаунта) --- */
getUsers(
request: EmptyRequest,
metadata?: Metadata,
): Promise<UserListResponse> | Observable<UserListResponse> | UserListResponse;
createUser(
request: CreateUserRequest,
metadata?: Metadata,
): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
updateUser(
request: UpdateUserRequest,
metadata?: Metadata,
): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
changePassword(
request: ChangePasswordRequest,
metadata?: Metadata,
): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
toggleUserStatus(
request: ToggleStatusRequest,
metadata?: Metadata,
): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
/** --- Вектор 3: Управление Группами --- */
getGroups(
request: EmptyRequest,
metadata?: Metadata,
): Promise<GroupListResponse> | Observable<GroupListResponse> | GroupListResponse;
addUserToGroup(
request: GroupMemberRequest,
metadata?: Metadata,
): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
removeUserFromGroup(
request: GroupMemberRequest,
metadata?: Metadata,
): Promise<StatusResponse> | Observable<StatusResponse> | StatusResponse;
} }
export function LdapAuthControllerMethods() { export function LdapAuthControllerMethods() {
return function (constructor: Function) { return function (constructor: Function) {
const grpcMethods: string[] = ["verifyUser"]; const grpcMethods: string[] = [
"verifyUser",
"getUsers",
"createUser",
"updateUser",
"changePassword",
"toggleUserStatus",
"getGroups",
"addUserToGroup",
"removeUserFromGroup",
];
for (const method of grpcMethods) { for (const method of grpcMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcMethod("LdapAuth", method)(constructor.prototype[method], method, descriptor); GrpcMethod("LdapAuth", method)(constructor.prototype[method], method, descriptor);

2
go.mod
View File

@@ -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

55
package-lock.json generated
View File

@@ -1,14 +1,15 @@
{ {
"name": "@lendry-erp/contracts", "name": "@lendry-erp/contracts",
"version": "1.0.2", "version": "1.0.24",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@lendry-erp/contracts", "name": "@lendry-erp/contracts",
"version": "1.0.2", "version": "1.0.24",
"dependencies": { "dependencies": {
"@lendry-erp/contracts": "^1.0.2", "@lendry-erp/contracts": "^1.0.24",
"@lendry-erp/passport": "^1.0.3",
"@nestjs/microservices": "^11.1.17", "@nestjs/microservices": "^11.1.17",
"rxjs": "^7.8.2", "rxjs": "^7.8.2",
"ts-proto": "^2.11.6" "ts-proto": "^2.11.6"
@@ -23,7 +24,6 @@
"resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.2.2.tgz", "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.2.2.tgz",
"integrity": "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==", "integrity": "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==",
"license": "MIT", "license": "MIT",
"peer": true,
"funding": { "funding": {
"type": "github", "type": "github",
"url": "https://github.com/sponsors/Borewit" "url": "https://github.com/sponsors/Borewit"
@@ -36,21 +36,32 @@
"license": "(Apache-2.0 AND BSD-3-Clause)" "license": "(Apache-2.0 AND BSD-3-Clause)"
}, },
"node_modules/@lendry-erp/contracts": { "node_modules/@lendry-erp/contracts": {
"version": "1.0.2", "version": "1.0.24",
"resolved": "https://git.lendry.ru/api/packages/lendry-erp/npm/%40lendry-erp%2Fcontracts/-/1.0.2/contracts-1.0.2.tgz", "resolved": "https://git.lendry.ru/api/packages/lendry-erp/npm/%40lendry-erp%2Fcontracts/-/1.0.24/contracts-1.0.24.tgz",
"integrity": "sha512-39NulQ6mn3dmrX/GXwzYYPyX/rE+4gO1En+uJJR9bHXZ3awWi0U3drIvgwM25gyi829Ae0U8vVtzMaP3gON90A==", "integrity": "sha512-Bn4RgU22O6IDFhYEbQicBLpRtSGHrEgqOSAljQh4lT5shMeLedlE0V3jFxzFu9xpyTzcM/o+C96vpsAHab0tbg==",
"dependencies": { "dependencies": {
"@nestjs/microservices": "^11.1.17", "@nestjs/microservices": "^11.1.17",
"rxjs": "^7.8.2", "rxjs": "^7.8.2",
"ts-proto": "^2.11.6" "ts-proto": "^2.11.6"
} }
}, },
"node_modules/@lendry-erp/passport": {
"version": "1.0.3",
"resolved": "https://git.lendry.ru/api/packages/lendry-erp/npm/%40lendry-erp%2Fpassport/-/1.0.3/passport-1.0.3.tgz",
"integrity": "sha512-gaPdlZahkXmOUnLBlzNdk41nJ1BI6TPZY5xUaCmlIkpqZKr8D5TSBBkFrw4Vlw+TLImqL2Y1JUT4k60gHHtjiw==",
"license": "ISC",
"dependencies": {
"@nestjs/common": "^11.1.17",
"@nestjs/core": "^11.1.17",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.2"
}
},
"node_modules/@lukeed/csprng": { "node_modules/@lukeed/csprng": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz",
"integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==",
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
@@ -60,7 +71,6 @@
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.17.tgz", "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-11.1.17.tgz",
"integrity": "sha512-hLODw5Abp8OQgA+mUO4tHou4krKgDtUcM9j5Ihxncst9XeyxYBTt2bwZm4e4EQr5E352S4Fyy6V3iFx9ggxKAg==", "integrity": "sha512-hLODw5Abp8OQgA+mUO4tHou4krKgDtUcM9j5Ihxncst9XeyxYBTt2bwZm4e4EQr5E352S4Fyy6V3iFx9ggxKAg==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"file-type": "21.3.2", "file-type": "21.3.2",
"iterare": "1.2.1", "iterare": "1.2.1",
@@ -93,7 +103,6 @@
"integrity": "sha512-lD5mAYekTTurF3vDaa8C2OKPnjiz4tsfxIc5XlcSUzOhkwWf6Ay3HKvt6FmvuWQam6uIIHX52Clg+e6tAvf/cg==", "integrity": "sha512-lD5mAYekTTurF3vDaa8C2OKPnjiz4tsfxIc5XlcSUzOhkwWf6Ay3HKvt6FmvuWQam6uIIHX52Clg+e6tAvf/cg==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@nuxt/opencollective": "0.4.1", "@nuxt/opencollective": "0.4.1",
"fast-safe-stringify": "2.1.1", "fast-safe-stringify": "2.1.1",
@@ -192,7 +201,6 @@
"resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@nuxt/opencollective/-/opencollective-0.4.1.tgz",
"integrity": "sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==", "integrity": "sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"consola": "^3.2.3" "consola": "^3.2.3"
}, },
@@ -209,7 +217,6 @@
"resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.4.1.tgz", "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.4.1.tgz",
"integrity": "sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==", "integrity": "sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"debug": "^4.4.3", "debug": "^4.4.3",
"token-types": "^6.1.1" "token-types": "^6.1.1"
@@ -226,8 +233,7 @@
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
"integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "25.5.0", "version": "25.5.0",
@@ -256,7 +262,6 @@
"resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
"integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": "^14.18.0 || >=16.10.0" "node": "^14.18.0 || >=16.10.0"
} }
@@ -266,7 +271,6 @@
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"ms": "^2.1.3" "ms": "^2.1.3"
}, },
@@ -304,15 +308,13 @@
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/file-type": { "node_modules/file-type": {
"version": "21.3.2", "version": "21.3.2",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.2.tgz", "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.2.tgz",
"integrity": "sha512-DLkUvGwep3poOV2wpzbHCOnSKGk1LzyXTv+aHFgN2VFl96wnp8YA9YjO2qPzg5PuL8q/SW9Pdi6WTkYOIh995w==", "integrity": "sha512-DLkUvGwep3poOV2wpzbHCOnSKGk1LzyXTv+aHFgN2VFl96wnp8YA9YjO2qPzg5PuL8q/SW9Pdi6WTkYOIh995w==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@tokenizer/inflate": "^0.4.1", "@tokenizer/inflate": "^0.4.1",
"strtok3": "^10.3.4", "strtok3": "^10.3.4",
@@ -344,8 +346,7 @@
"url": "https://feross.org/support" "url": "https://feross.org/support"
} }
], ],
"license": "BSD-3-Clause", "license": "BSD-3-Clause"
"peer": true
}, },
"node_modules/iterare": { "node_modules/iterare": {
"version": "1.2.1", "version": "1.2.1",
@@ -371,7 +372,6 @@
} }
], ],
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=13.2.0" "node": ">=13.2.0"
} }
@@ -380,15 +380,13 @@
"version": "2.1.3", "version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/path-to-regexp": { "node_modules/path-to-regexp": {
"version": "8.3.0", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.3.0.tgz",
"integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==", "integrity": "sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==",
"license": "MIT", "license": "MIT",
"peer": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/express" "url": "https://opencollective.com/express"
@@ -398,8 +396,7 @@
"version": "0.2.2", "version": "0.2.2",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
"integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
"license": "Apache-2.0", "license": "Apache-2.0"
"peer": true
}, },
"node_modules/rxjs": { "node_modules/rxjs": {
"version": "7.8.2", "version": "7.8.2",
@@ -415,7 +412,6 @@
"resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.5.tgz", "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.5.tgz",
"integrity": "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==", "integrity": "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@tokenizer/token": "^0.3.0" "@tokenizer/token": "^0.3.0"
}, },
@@ -432,7 +428,6 @@
"resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.2.tgz", "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.2.tgz",
"integrity": "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==", "integrity": "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@borewit/text-codec": "^0.2.1", "@borewit/text-codec": "^0.2.1",
"@tokenizer/token": "^0.3.0", "@tokenizer/token": "^0.3.0",
@@ -504,7 +499,6 @@
"resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz",
"integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==",
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@lukeed/csprng": "^1.0.0" "@lukeed/csprng": "^1.0.0"
}, },
@@ -517,7 +511,6 @@
"resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz",
"integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==", "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==",
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=18" "node": ">=18"
}, },

View File

@@ -1,6 +1,6 @@
{ {
"name": "@lendry-erp/contracts", "name": "@lendry-erp/contracts",
"version": "1.0.15", "version": "1.0.27",
"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",
@@ -17,6 +17,8 @@
"access": "public" "access": "public"
}, },
"dependencies": { "dependencies": {
"@lendry-erp/contracts": "^1.0.24",
"@lendry-erp/passport": "^1.0.3",
"@nestjs/microservices": "^11.1.17", "@nestjs/microservices": "^11.1.17",
"rxjs": "^7.8.2", "rxjs": "^7.8.2",
"ts-proto": "^2.11.6" "ts-proto": "^2.11.6"

View File

@@ -2,12 +2,15 @@ syntax = "proto3";
package identity; package identity;
option go_package = "./gen"; option go_package = "git.lendry.ru/lendry-erp/proto.git/go;pb";
service AuthService { service AuthService {
rpc Login (LoginRequest) returns (LoginResponse); rpc Login (LoginRequest) returns (LoginResponse);
rpc Refresh (RefreshRequest) returns (RefreshResponse); rpc Refresh (RefreshRequest) returns (RefreshResponse);
rpc VerifyToken (VerifyTokenRequest) returns (VerifyTokenResponse);
rpc GetAccountRoleLevel (GetAccountRoleLevelRequest) returns (GetAccountRoleLevelResponse);
rpc Logout (LogoutRequest) returns (LogoutResponse); rpc Logout (LogoutRequest) returns (LogoutResponse);
rpc LogoutAll (LogoutRequest) returns (LogoutResponse);
rpc UnlockPin (UnlockPinRequest) returns (UnlockPinResponse); rpc UnlockPin (UnlockPinRequest) returns (UnlockPinResponse);
rpc Verify2Fa (Verify2FaRequest) returns (Verify2FaResponse); rpc Verify2Fa (Verify2FaRequest) returns (Verify2FaResponse);
} }
@@ -56,6 +59,30 @@ message LogoutResponse {
string message = 2; string message = 2;
} }
message VerifyTokenRequest {
string token = 1;
}
message VerifyTokenResponse {
bool is_valid = 1;
optional string error_message = 2;
optional string id = 3;
optional string username = 4;
optional int32 role_level = 5;
repeated string permissions = 6;
optional string session_id = 7;
optional bool requires_pin = 8;
}
message GetAccountRoleLevelRequest {
string account_id = 1;
}
message GetAccountRoleLevelResponse {
bool found = 1;
int32 role_level = 2;
}
message UnlockPinRequest { message UnlockPinRequest {
string access_token = 1; string access_token = 1;
string pin_code = 2; string pin_code = 2;

View File

@@ -2,12 +2,62 @@ syntax = "proto3";
package ldap_service; package ldap_service;
option go_package = "git.lendry.ru/lendry-erp/gen/go;ldap_service"; option go_package = "git.lendry.ru/lendry-erp/proto.git/go;pb";
// ==========================================
// ГЛАВНЫЙ СЕРВИС
// ==========================================
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; // Полный путь группы (в которую добавляем / из которой удаляем)
}