Skip to content

Commit 2c2c7df

Browse files
committed
feat: 新增 GetUserFunctionMixRole 方法及相關 Protobuf 設定
1 parent 70c0c0c commit 2c2c7df

5 files changed

Lines changed: 65 additions & 3 deletions

File tree

src/Netcorext.Auth.API/Services/User/Queries/GetUserFunction/GetUserFunction.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@ public class Condition
1919
public string Value { get; set; } = null!;
2020
}
2121
}
22-
}
22+
}

src/Netcorext.Auth.API/Services/User/Queries/GetUserFunction/GetUserFunctionHandler.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ public GetUserFunctionHandler(DatabaseContextAdapter context, IOptions<ConfigSet
3939
}
4040
});
4141

42-
4342
var dsUserRole = _context.Set<Domain.Entities.UserRole>();
4443
var dsUserPermissionCondition = _context.Set<Domain.Entities.UserPermissionCondition>();
4544
var dsPermission = _context.Set<Domain.Entities.Permission>();

src/Netcorext.Auth.API/Services/User/Queries/Models/UserFunction.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ namespace Netcorext.Auth.API.Services.User.Queries.Models;
33
public class UserFunction
44
{
55
public IEnumerable<Function> Functions { get; set; } = null!;
6-
}
6+
}

src/Netcorext.Auth.API/Services/User/UserSerivceFacade.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,32 @@ public override async Task<Result> ExistsUser(ExistsUserRequest request, ServerC
8686
return result;
8787
}
8888

89+
[Permission("AUTH", PermissionType.Read)]
90+
public override async Task<GetUserFunctionMixRoleRequest.Types.Result> GetUserFunctionMixRole(GetUserFunctionMixRoleRequest request, ServerCallContext context)
91+
{
92+
var req = request.Adapt<GetUserFunctionMixRole>();
93+
var rep = await _dispatcher.SendAsync(req);
94+
95+
var result = new GetUserFunctionMixRoleRequest.Types.Result
96+
{
97+
Code = rep.Code,
98+
Message = rep.Message,
99+
Content = new GetUserFunctionMixRoleRequest.Types.Result.Types.UserFunctionMixRole
100+
{
101+
Roles = { rep.Content?.Roles.Select(t => t) },
102+
UserFunctions =
103+
{
104+
rep.Content?.UserFunctions.Select(t => new GetUserFunctionMixRoleRequest.Types.Result.Types.UserFunction
105+
{
106+
Functions = { t.Functions.Select(t2 => t2.Adapt<GetUserFunctionMixRoleRequest.Types.Result.Types.Function>()) }
107+
})
108+
}
109+
}
110+
};
111+
112+
return result;
113+
}
114+
89115
[Permission("AUTH", PermissionType.Read)]
90116
public override async Task<GetUserRoleRequest.Types.Result> GetUserRole(GetUserRoleRequest request, ServerCallContext context)
91117
{

src/Netcorext.Auth.Protobufs/Protos/auth-api-user-service.proto

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ service UserService {
1616
rpc GetUser (GetUserRequest) returns (GetUserRequest.Result);
1717
rpc GetUserIdentity (GetUserIdentityRequest) returns (GetUserIdentityRequest.Result);
1818
rpc GetUserFunction (GetUserFunctionRequest) returns (GetUserFunctionRequest.Result);
19+
rpc GetUserFunctionMixRole (GetUserFunctionMixRoleRequest) returns (GetUserFunctionMixRoleRequest.Result);
1920
rpc GetUserRole (GetUserRoleRequest) returns (GetUserRoleRequest.Result);
2021
rpc UpdateUser (UpdateUserRequest) returns (netcorext.contracts.protobufs.Result);
2122
}
@@ -243,6 +244,42 @@ message GetUserFunctionRequest {
243244
}
244245
}
245246

247+
message GetUserFunctionMixRoleRequest {
248+
int64 id = 1;
249+
repeated PermissionCondition permissionConditions = 2;
250+
251+
message PermissionCondition {
252+
google.protobuf.StringValue group = 1;
253+
repeated Condition conditions = 2;
254+
}
255+
256+
message Condition {
257+
string key = 1;
258+
string value = 2;
259+
}
260+
261+
message Result {
262+
string code = 1;
263+
string message = 2;
264+
UserFunctionMixRole content = 3;
265+
266+
267+
message UserFunctionMixRole {
268+
repeated int64 roles = 1;
269+
repeated UserFunction userFunctions = 2;
270+
}
271+
272+
message UserFunction {
273+
repeated Function functions = 1;
274+
}
275+
276+
message Function {
277+
string id = 1;
278+
netcorext.auth.protobufs.enums.PermissionType permissionType = 2;
279+
}
280+
}
281+
}
282+
246283
message GetUserRoleRequest {
247284
repeated int64 ids = 1;
248285
bool includeExtendData = 2;

0 commit comments

Comments
 (0)