feat(queries): user IDP links (#2751)

This commit is contained in:
Silvan
2021-12-07 08:33:52 +01:00
committed by GitHub
parent 2ad03285f1
commit 303d4945a7
13 changed files with 394 additions and 37 deletions

View File

@@ -5,7 +5,6 @@ import (
"github.com/caos/zitadel/internal/domain"
iam_model "github.com/caos/zitadel/internal/iam/model"
"github.com/caos/zitadel/internal/query"
user_model "github.com/caos/zitadel/internal/user/model"
idp_pb "github.com/caos/zitadel/pkg/grpc/idp"
)
@@ -61,31 +60,30 @@ func ExternalIDPViewToLoginPolicyLinkPb(link *iam_model.IDPProviderView) *idp_pb
return &idp_pb.IDPLoginPolicyLink{
IdpId: link.IDPConfigID,
IdpName: link.Name,
IdpType: IDPTypeToPb(link.IDPConfigType),
IdpType: IDPTypeViewToPb(link.IDPConfigType),
}
}
func IDPsToUserLinkPb(res []*user_model.ExternalIDPView) []*idp_pb.IDPUserLink {
func IDPUserLinksToPb(res []*query.UserIDPLink) []*idp_pb.IDPUserLink {
links := make([]*idp_pb.IDPUserLink, len(res))
for i, link := range res {
links[i] = ExternalIDPViewToUserLinkPb(link)
links[i] = IDPUserLinkToPb(link)
}
return links
}
func ExternalIDPViewToUserLinkPb(link *user_model.ExternalIDPView) *idp_pb.IDPUserLink {
func IDPUserLinkToPb(link *query.UserIDPLink) *idp_pb.IDPUserLink {
return &idp_pb.IDPUserLink{
UserId: link.UserID,
IdpId: link.IDPConfigID,
IdpId: link.IDPID,
IdpName: link.IDPName,
ProvidedUserId: link.ExternalUserID,
ProvidedUserName: link.UserDisplayName,
//TODO: as soon as saml is implemented we need to switch here
//IdpType: IDPTypeToPb(link.Type),
ProvidedUserId: link.ProvidedUserID,
ProvidedUserName: link.ProvidedUsername,
IdpType: IDPTypeToPb(link.IDPType),
}
}
func IDPTypeToPb(idpType iam_model.IdpConfigType) idp_pb.IDPType {
func IDPTypeViewToPb(idpType iam_model.IdpConfigType) idp_pb.IDPType {
switch idpType {
case iam_model.IDPConfigTypeOIDC:
return idp_pb.IDPType_IDP_TYPE_OIDC
@@ -98,6 +96,19 @@ func IDPTypeToPb(idpType iam_model.IdpConfigType) idp_pb.IDPType {
}
}
func IDPTypeToPb(idpType domain.IDPConfigType) idp_pb.IDPType {
switch idpType {
case domain.IDPConfigTypeOIDC:
return idp_pb.IDPType_IDP_TYPE_OIDC
case domain.IDPConfigTypeSAML:
return idp_pb.IDPType_IDP_TYPE_UNSPECIFIED
case domain.IDPConfigTypeJWT:
return idp_pb.IDPType_IDP_TYPE_JWT
default:
return idp_pb.IDPType_IDP_TYPE_UNSPECIFIED
}
}
func IDPStateToPb(state domain.IDPConfigState) idp_pb.IDPState {
switch state {
case domain.IDPConfigStateActive: