mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-12 19:14:23 +00:00
ed80a8bb1e
* feat(actions): begin api * feat(actions): begin api * api and projections * fix: handle multiple statements for a single event in projections * export func type * fix test * update to new reduce interface * flows in login * feat: jwt idp * feat: command side * feat: add tests * actions and flows * fill idp views with jwt idps and return apis * add jwtEndpoint to jwt idp * begin jwt request handling * add feature * merge * merge * handle jwt idp * cleanup * bug fixes * autoregister * get token from specific header name * fix: proto * fixes * i18n * begin tests * fix and log http proxy * remove docker cache * fixes * usergrants in actions api * tests adn cleanup * cleanup * fix add user grant * set login context * i18n Co-authored-by: fabi <fabienne.gerschwiler@gmail.com>
111 lines
4.4 KiB
Go
111 lines
4.4 KiB
Go
package admin
|
|
|
|
import (
|
|
"context"
|
|
|
|
features_grpc "github.com/caos/zitadel/internal/api/grpc/features"
|
|
object_grpc "github.com/caos/zitadel/internal/api/grpc/object"
|
|
"github.com/caos/zitadel/internal/domain"
|
|
admin_pb "github.com/caos/zitadel/pkg/grpc/admin"
|
|
)
|
|
|
|
func (s *Server) GetDefaultFeatures(ctx context.Context, _ *admin_pb.GetDefaultFeaturesRequest) (*admin_pb.GetDefaultFeaturesResponse, error) {
|
|
features, err := s.features.GetDefaultFeatures(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &admin_pb.GetDefaultFeaturesResponse{
|
|
Features: features_grpc.FeaturesFromModel(features),
|
|
}, nil
|
|
}
|
|
|
|
func (s *Server) SetDefaultFeatures(ctx context.Context, req *admin_pb.SetDefaultFeaturesRequest) (*admin_pb.SetDefaultFeaturesResponse, error) {
|
|
details, err := s.command.SetDefaultFeatures(ctx, setDefaultFeaturesRequestToDomain(req))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &admin_pb.SetDefaultFeaturesResponse{
|
|
Details: object_grpc.DomainToChangeDetailsPb(details),
|
|
}, nil
|
|
}
|
|
|
|
func (s *Server) GetOrgFeatures(ctx context.Context, req *admin_pb.GetOrgFeaturesRequest) (*admin_pb.GetOrgFeaturesResponse, error) {
|
|
features, err := s.features.GetOrgFeatures(ctx, req.OrgId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &admin_pb.GetOrgFeaturesResponse{
|
|
Features: features_grpc.FeaturesFromModel(features),
|
|
}, nil
|
|
}
|
|
|
|
func (s *Server) SetOrgFeatures(ctx context.Context, req *admin_pb.SetOrgFeaturesRequest) (*admin_pb.SetOrgFeaturesResponse, error) {
|
|
details, err := s.command.SetOrgFeatures(ctx, req.OrgId, setOrgFeaturesRequestToDomain(req))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &admin_pb.SetOrgFeaturesResponse{
|
|
Details: object_grpc.DomainToChangeDetailsPb(details),
|
|
}, nil
|
|
}
|
|
|
|
func (s *Server) ResetOrgFeatures(ctx context.Context, req *admin_pb.ResetOrgFeaturesRequest) (*admin_pb.ResetOrgFeaturesResponse, error) {
|
|
details, err := s.command.RemoveOrgFeatures(ctx, req.OrgId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &admin_pb.ResetOrgFeaturesResponse{
|
|
Details: object_grpc.DomainToChangeDetailsPb(details),
|
|
}, nil
|
|
}
|
|
|
|
func setDefaultFeaturesRequestToDomain(req *admin_pb.SetDefaultFeaturesRequest) *domain.Features {
|
|
return &domain.Features{
|
|
TierName: req.TierName,
|
|
TierDescription: req.Description,
|
|
AuditLogRetention: req.AuditLogRetention.AsDuration(),
|
|
LoginPolicyFactors: req.LoginPolicyFactors,
|
|
LoginPolicyIDP: req.LoginPolicyIdp,
|
|
LoginPolicyPasswordless: req.LoginPolicyPasswordless,
|
|
LoginPolicyRegistration: req.LoginPolicyRegistration,
|
|
LoginPolicyUsernameLogin: req.LoginPolicyUsernameLogin,
|
|
LoginPolicyPasswordReset: req.LoginPolicyPasswordReset,
|
|
PasswordComplexityPolicy: req.PasswordComplexityPolicy,
|
|
LabelPolicyPrivateLabel: req.LabelPolicy || req.LabelPolicyPrivateLabel,
|
|
LabelPolicyWatermark: req.LabelPolicyWatermark,
|
|
CustomDomain: req.CustomDomain,
|
|
PrivacyPolicy: req.PrivacyPolicy,
|
|
MetadataUser: req.MetadataUser,
|
|
CustomTextLogin: req.CustomTextLogin || req.CustomText,
|
|
CustomTextMessage: req.CustomTextMessage,
|
|
LockoutPolicy: req.LockoutPolicy,
|
|
Actions: req.Actions,
|
|
}
|
|
}
|
|
|
|
func setOrgFeaturesRequestToDomain(req *admin_pb.SetOrgFeaturesRequest) *domain.Features {
|
|
return &domain.Features{
|
|
TierName: req.TierName,
|
|
TierDescription: req.Description,
|
|
State: features_grpc.FeaturesStateToDomain(req.State),
|
|
StateDescription: req.StateDescription,
|
|
AuditLogRetention: req.AuditLogRetention.AsDuration(),
|
|
LoginPolicyFactors: req.LoginPolicyFactors,
|
|
LoginPolicyIDP: req.LoginPolicyIdp,
|
|
LoginPolicyPasswordless: req.LoginPolicyPasswordless,
|
|
LoginPolicyRegistration: req.LoginPolicyRegistration,
|
|
LoginPolicyUsernameLogin: req.LoginPolicyUsernameLogin,
|
|
LoginPolicyPasswordReset: req.LoginPolicyPasswordReset,
|
|
PasswordComplexityPolicy: req.PasswordComplexityPolicy,
|
|
LabelPolicyPrivateLabel: req.LabelPolicy || req.LabelPolicyPrivateLabel,
|
|
LabelPolicyWatermark: req.LabelPolicyWatermark,
|
|
CustomDomain: req.CustomDomain,
|
|
PrivacyPolicy: req.PrivacyPolicy,
|
|
MetadataUser: req.MetadataUser,
|
|
CustomTextLogin: req.CustomTextLogin || req.CustomText,
|
|
CustomTextMessage: req.CustomTextMessage,
|
|
LockoutPolicy: req.LockoutPolicy,
|
|
Actions: req.Actions,
|
|
}
|
|
}
|