chore(workflow-types): import authdns

This commit is contained in:
Sarah Vaupel 2020-04-02 18:28:18 +02:00 committed by Gregor Kleen
parent 9612b7d905
commit 460bd9d3e5
2 changed files with 12 additions and 13 deletions

View File

@ -1,14 +1,14 @@
WorkflowDefinition WorkflowDefinition
graph (WorkflowGraph UserId AuthDNF FileId) graph (WorkflowGraph UserId FileId)
scope WorkflowInstanceScope' scope WorkflowInstanceScope'
WorkflowInstance WorkflowInstance
definition WorkflowDefinition definition WorkflowDefinition
graph (WorkflowGraph UserId AuthDNF FileId) graph (WorkflowGraph UserId FileId)
scope (WorkflowInstaceScope TermId SchoolId CourseId) scope (WorkflowInstaceScope TermId SchoolId CourseId)
Workflow Workflow
instance WorkflowInstance instance WorkflowInstance
graph (WorkflowGraph UserId AuthDNF FileId) graph (WorkflowGraph UserId FileId)
initiator UserId Maybe initiator UserId Maybe
payload (WorkflowPayload FileId) payload (WorkflowPayload FileId)

View File

@ -2,10 +2,12 @@ module Model.Types.Workflow where
import Import.NoModel import Import.NoModel
import Model.Types.Security (AuthDNF)
data WorkflowRole userid authdnf = WorkflowRoleUser userid
| WorkflowRoleAuthorized authdnf data WorkflowRole userid = WorkflowRoleUser userid
| WorkflowRoleInitiator userid | WorkflowRoleAuthorized AuthDNF
| WorkflowRoleInitiator userid
data WorkflowGraphNodeStatus = WGNS data WorkflowGraphNodeStatus = WGNS
@ -15,9 +17,8 @@ data WorkflowGraphNodeStatus = WGNS
} }
deriving (Eq, Ord, Show, Read, Data, Generic, Typeable) deriving (Eq, Ord, Show, Read, Data, Generic, Typeable)
data WorkflowGraphNode userid authdnf fileid = WGN data WorkflowGraphNode = WGN
{ wgnStatus :: WorkflowGraphNodeStatus { wgnStatus :: WorkflowGraphNodeStatus
, wgnOutgoing :: Set (WorkflowGraphEdge userid authdnf fileid)
} }
type WorkflowGraphNodeLabel = CI Text type WorkflowGraphNodeLabel = CI Text
@ -65,16 +66,14 @@ data WorkflowEdgePayloadSpecification fileid userid = forall payload. (FromJSON
data WorkflowPayload userid fileid = forall payload. Map WorkflowEdgePayloadLabel (WorkflowEdgePayload userid fileid payload) data WorkflowPayload userid fileid = forall payload. Map WorkflowEdgePayloadLabel (WorkflowEdgePayload userid fileid payload)
data WorkflowGraphEdge userid authdnf fileid = WGE data WorkflowGraphEdge userid fileid = WGE
{ wgeActors :: Set (WorkflowRole userid authdnf) { wgeActors :: Set (WorkflowRole userid)
, wgeTarget :: WorkflowGraphNodeLabel , wgeTarget :: WorkflowGraphNodeLabel
, wgeForm :: Map WorkflowEdgePayloadLabel (NonNull (Set (WorkflowEdgePayloadSpecification fileid userid))) , wgeForm :: Map WorkflowEdgePayloadLabel (NonNull (Set (WorkflowEdgePayloadSpecification fileid userid)))
} }
data WorkflowGraph userid authdnf fileid = WorkflowGraph data WorkflowGraph userid fileid = WorkflowGraph (Map WorkflowGraphNodeLabel (WorkflowGraphNode, Set (WorkflowGraphEdge userid fileid)))
{ wgNodes :: Map WorkflowGraphNodeLabel (WorkflowGraphNode userid authdnf fileid, Set (WorkflowGraphEdge userid authdnf fileid))
}
data WorkflowInstanceScope term school course = WISGlobal | WISTerm term | WISSchool school | WISCourse course data WorkflowInstanceScope term school course = WISGlobal | WISTerm term | WISSchool school | WISCourse course