Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
This module contains the analog of some of the team-level roles & permissions types in Wire.API.Team.
Synopsis
- data ConversationRole
- wireConvRoles :: [ConversationRole]
- convRoleWireAdmin :: ConversationRole
- convRoleWireMember :: ConversationRole
- data ConversationRolesList = ConversationRolesList {}
- data RoleName
- $sel:fromRoleName:RoleName :: RoleName -> Text
- parseRoleName :: Text -> Maybe RoleName
- roleNameWireAdmin :: RoleName
- roleNameWireMember :: RoleName
- data Action
- data SAction :: Action -> Type where
- SAddConversationMember :: SAction ('AddConversationMember :: Action)
- SRemoveConversationMember :: SAction ('RemoveConversationMember :: Action)
- SModifyConversationName :: SAction ('ModifyConversationName :: Action)
- SModifyConversationMessageTimer :: SAction ('ModifyConversationMessageTimer :: Action)
- SModifyConversationReceiptMode :: SAction ('ModifyConversationReceiptMode :: Action)
- SModifyConversationAccess :: SAction ('ModifyConversationAccess :: Action)
- SModifyOtherConversationMember :: SAction ('ModifyOtherConversationMember :: Action)
- SLeaveConversation :: SAction ('LeaveConversation :: Action)
- SDeleteConversation :: SAction ('DeleteConversation :: Action)
- newtype Actions = Actions {}
- type family ActionName (a :: Action) :: Symbol where ...
- type family AddConversationMemberSym0 :: Action where ...
- type family RemoveConversationMemberSym0 :: Action where ...
- type family ModifyConversationNameSym0 :: Action where ...
- type family ModifyConversationMessageTimerSym0 :: Action where ...
- type family ModifyConversationReceiptModeSym0 :: Action where ...
- type family ModifyConversationAccessSym0 :: Action where ...
- type family ModifyOtherConversationMemberSym0 :: Action where ...
- type family LeaveConversationSym0 :: Action where ...
- type family DeleteConversationSym0 :: Action where ...
- isValidRoleName :: Text -> Bool
- roleActions :: ConversationRole -> Set Action
- toConvRole :: RoleName -> Maybe Actions -> Maybe ConversationRole
Role
data ConversationRole Source #
A conversation role is associated to a user in the scope of a conversation and implies
with a set of Action
s. Conversation-level analog to what Role
is on the team-level.
Do not expose the constructors directly, use smart constructors instead to ensure that all validation is performed.
Instances
data ConversationRolesList Source #
Instances
RoleName
Instances
Arbitrary RoleName Source # | |
FromJSON RoleName Source # | |
ToJSON RoleName Source # | |
Generic RoleName Source # | |
Show RoleName Source # | |
FromByteString RoleName Source # | |
Defined in Wire.API.Conversation.Role | |
ToByteString RoleName Source # | |
Cql RoleName Source # | |
Eq RoleName Source # | |
Ord RoleName Source # | |
Defined in Wire.API.Conversation.Role | |
Hashable RoleName Source # | |
ToSchema RoleName Source # | |
Defined in Wire.API.Conversation.Role | |
ToSchema RoleName Source # | |
Defined in Wire.API.Conversation.Role | |
type Rep RoleName Source # | |
Defined in Wire.API.Conversation.Role |
Action
These conversation-level permissions. Analogous to the team-level permissions called
Perm
(or Permissions
).
Instances
data SAction :: Action -> Type where Source #
type family ActionName (a :: Action) :: Symbol where ... Source #
ActionName 'AddConversationMember = "add_conversation_member" | |
ActionName 'RemoveConversationMember = "remove_conversation_member" | |
ActionName 'ModifyConversationName = "modify_conversation_name" | |
ActionName 'ModifyConversationMessageTimer = "modify_conversation_message_timer" | |
ActionName 'ModifyConversationReceiptMode = "modify_conversation_receipt_mode" | |
ActionName 'ModifyConversationAccess = "modify_conversation_access" | |
ActionName 'ModifyOtherConversationMember = "modify_other_conversation_member" | |
ActionName 'LeaveConversation = "leave_conversation" | |
ActionName 'DeleteConversation = "delete_conversation" |
type family AddConversationMemberSym0 :: Action where ... Source #
type family RemoveConversationMemberSym0 :: Action where ... Source #
type family ModifyConversationNameSym0 :: Action where ... Source #
type family ModifyConversationMessageTimerSym0 :: Action where ... Source #
type family ModifyConversationReceiptModeSym0 :: Action where ... Source #
type family ModifyConversationAccessSym0 :: Action where ... Source #
type family ModifyOtherConversationMemberSym0 :: Action where ... Source #
type family LeaveConversationSym0 :: Action where ... Source #
type family DeleteConversationSym0 :: Action where ... Source #
helpers
isValidRoleName :: Text -> Bool Source #
roleActions :: ConversationRole -> Set Action Source #
toConvRole :: RoleName -> Maybe Actions -> Maybe ConversationRole Source #