mirror of
https://github.com/zitadel/zitadel.git
synced 2025-04-08 01:05:48 +00:00

# Which Problems Are Solved SortingColumn functionality on system API ListIAMMembers SortingColumn functionality on admin API ListIAMMembers # How the Problems Are Solved I have added enum MemberFieldColumnName in` member.proto `file , consists of names of the columns on which the request can be sorted. MEMBER_FIELD_NAME_UNSPECIFIED = 0; MEMBER_FIELD_NAME_USER_ID=1; MEMBER_FIELD_NAME_CREATION_DATE = 2; MEMBER_FIELD_NAME_CHANGE_DATE=3; MEMBER_FIELD_NAME_USER_RESOURCE_OWNER=4 I have added field Sorting Column for ListIAMMembersRequest in` system.proto` file. I have added field Sorting Column for ListIAMMembersRequest in` admin.proto` file. I have modified ListIAMMembersRequestToQuery function in file `internal/api/grpc/system/instance_converter.go `to include sorting column in the query.SearchRequest{}. I have modified ListIAMMembersRequestToQuery function in file `internal/api/grpc/admin/iam_member_converter.go ` to include sorting column in the query.SearchRequest{}. # Additional Changes Replace this example text with a concise list of additional changes that this PR introduces, that are not directly solving the initial problem but are related. For example: - The docs explicitly describe that the property XY is mandatory - Adds missing translations for validations. # Additional Context Replace this example with links to related issues, discussions, discord threads, or other sources with more context. Use the Closing #issue syntax for issues that are resolved with this PR. - Closes https://github.com/zitadel/zitadel/issues/5063 - Discussion #xxx - Follow-up for PR #xxx - https://discordapp.com/channels/927474939156643850/1329872809488416789/1329872809488416789 --------- Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com>
61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
package admin
|
|
|
|
import (
|
|
member_grpc "github.com/zitadel/zitadel/internal/api/grpc/member"
|
|
"github.com/zitadel/zitadel/internal/api/grpc/object"
|
|
"github.com/zitadel/zitadel/internal/domain"
|
|
"github.com/zitadel/zitadel/internal/query"
|
|
admin_pb "github.com/zitadel/zitadel/pkg/grpc/admin"
|
|
member_pb "github.com/zitadel/zitadel/pkg/grpc/member"
|
|
)
|
|
|
|
func AddIAMMemberToDomain(req *admin_pb.AddIAMMemberRequest) *domain.Member {
|
|
return &domain.Member{
|
|
UserID: req.UserId,
|
|
Roles: req.Roles,
|
|
}
|
|
}
|
|
|
|
func UpdateIAMMemberToDomain(req *admin_pb.UpdateIAMMemberRequest) *domain.Member {
|
|
return &domain.Member{
|
|
UserID: req.UserId,
|
|
Roles: req.Roles,
|
|
}
|
|
}
|
|
|
|
func ListIAMMembersRequestToQuery(req *admin_pb.ListIAMMembersRequest) (*query.IAMMembersQuery, error) {
|
|
offset, limit, asc := object.ListQueryToModel(req.Query)
|
|
queries, err := member_grpc.MemberQueriesToQuery(req.Queries)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &query.IAMMembersQuery{
|
|
MembersQuery: query.MembersQuery{
|
|
SearchRequest: query.SearchRequest{
|
|
Offset: offset,
|
|
Limit: limit,
|
|
Asc: asc,
|
|
SortingColumn: fieldNameToMemberColumn(req.SortingColumn),
|
|
},
|
|
Queries: queries,
|
|
},
|
|
}, nil
|
|
}
|
|
|
|
func fieldNameToMemberColumn(fieldName member_pb.MemberFieldColumnName) query.Column {
|
|
switch fieldName {
|
|
case member_pb.MemberFieldColumnName_MEMBER_FIELD_NAME_UNSPECIFIED:
|
|
return query.InstanceMemberInstanceID
|
|
case member_pb.MemberFieldColumnName_MEMBER_FIELD_NAME_USER_ID:
|
|
return query.InstanceMemberUserID
|
|
case member_pb.MemberFieldColumnName_MEMBER_FIELD_NAME_CREATION_DATE:
|
|
return query.InstanceMemberCreationDate
|
|
case member_pb.MemberFieldColumnName_MEMBER_FIELD_NAME_CHANGE_DATE:
|
|
return query.InstanceMemberChangeDate
|
|
case member_pb.MemberFieldColumnName_MEMBER_FIELD_NAME_USER_RESOURCE_OWNER:
|
|
return query.InstanceMemberResourceOwner
|
|
default:
|
|
return query.Column{}
|
|
}
|
|
}
|