2021-09-27 13:43:49 +02:00
|
|
|
package management
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
2022-04-27 01:01:45 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/api/authz"
|
|
|
|
action_grpc "github.com/zitadel/zitadel/internal/api/grpc/action"
|
|
|
|
obj_grpc "github.com/zitadel/zitadel/internal/api/grpc/object"
|
2022-10-06 14:23:59 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/domain"
|
2023-12-08 16:30:55 +02:00
|
|
|
"github.com/zitadel/zitadel/internal/zerrors"
|
2022-10-06 14:23:59 +02:00
|
|
|
action_pb "github.com/zitadel/zitadel/pkg/grpc/action"
|
2022-04-27 01:01:45 +02:00
|
|
|
mgmt_pb "github.com/zitadel/zitadel/pkg/grpc/management"
|
2021-09-27 13:43:49 +02:00
|
|
|
)
|
|
|
|
|
2022-10-06 14:23:59 +02:00
|
|
|
func (s *Server) ListFlowTypes(ctx context.Context, _ *mgmt_pb.ListFlowTypesRequest) (*mgmt_pb.ListFlowTypesResponse, error) {
|
|
|
|
return &mgmt_pb.ListFlowTypesResponse{
|
|
|
|
Result: []*action_pb.FlowType{
|
|
|
|
action_grpc.FlowTypeToPb(domain.FlowTypeExternalAuthentication),
|
|
|
|
action_grpc.FlowTypeToPb(domain.FlowTypeCustomiseToken),
|
2023-01-25 14:08:01 +01:00
|
|
|
action_grpc.FlowTypeToPb(domain.FlowTypeInternalAuthentication),
|
2023-08-15 17:04:45 +02:00
|
|
|
action_grpc.FlowTypeToPb(domain.FlowTypeCustomizeSAMLResponse),
|
2022-10-06 14:23:59 +02:00
|
|
|
},
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Server) ListFlowTriggerTypes(ctx context.Context, req *mgmt_pb.ListFlowTriggerTypesRequest) (*mgmt_pb.ListFlowTriggerTypesResponse, error) {
|
|
|
|
triggerTypes := action_grpc.FlowTypeToDomain(req.Type).TriggerTypes()
|
|
|
|
if len(triggerTypes) == 0 {
|
2023-12-08 16:30:55 +02:00
|
|
|
return nil, zerrors.ThrowNotFound(nil, "MANAG-P2OBk", "Errors.NotFound")
|
2022-10-06 14:23:59 +02:00
|
|
|
}
|
|
|
|
return &mgmt_pb.ListFlowTriggerTypesResponse{
|
|
|
|
Result: action_grpc.TriggerTypesToPb(triggerTypes),
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
2021-09-27 13:43:49 +02:00
|
|
|
func (s *Server) GetFlow(ctx context.Context, req *mgmt_pb.GetFlowRequest) (*mgmt_pb.GetFlowResponse, error) {
|
2023-11-20 16:21:08 +01:00
|
|
|
flow, err := s.query.GetFlow(ctx, action_grpc.FlowTypeToDomain(req.Type), authz.GetCtxData(ctx).OrgID)
|
2021-09-27 13:43:49 +02:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &mgmt_pb.GetFlowResponse{
|
|
|
|
Flow: action_grpc.FlowToPb(flow),
|
|
|
|
}, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Server) ClearFlow(ctx context.Context, req *mgmt_pb.ClearFlowRequest) (*mgmt_pb.ClearFlowResponse, error) {
|
|
|
|
details, err := s.command.ClearFlow(ctx, action_grpc.FlowTypeToDomain(req.Type), authz.GetCtxData(ctx).OrgID)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &mgmt_pb.ClearFlowResponse{
|
|
|
|
Details: obj_grpc.DomainToChangeDetailsPb(details),
|
|
|
|
}, err
|
|
|
|
}
|
|
|
|
|
|
|
|
func (s *Server) SetTriggerActions(ctx context.Context, req *mgmt_pb.SetTriggerActionsRequest) (*mgmt_pb.SetTriggerActionsResponse, error) {
|
|
|
|
details, err := s.command.SetTriggerActions(
|
|
|
|
ctx,
|
|
|
|
action_grpc.FlowTypeToDomain(req.FlowType),
|
|
|
|
action_grpc.TriggerTypeToDomain(req.TriggerType),
|
|
|
|
req.ActionIds,
|
|
|
|
authz.GetCtxData(ctx).OrgID,
|
|
|
|
)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &mgmt_pb.SetTriggerActionsResponse{
|
|
|
|
Details: obj_grpc.AddToDetailsPb(
|
|
|
|
details.Sequence,
|
|
|
|
details.EventDate,
|
|
|
|
details.ResourceOwner,
|
|
|
|
),
|
|
|
|
}, nil
|
|
|
|
}
|