galley-0.83.0: Conversations
Safe HaskellSafe-Inferred
LanguageGHC2021

Galley.API.Teams.Features

Synopsis

Documentation

class (IsFeatureConfig cfg, GetFeatureDefaults (FeatureDefaults cfg), NpProject cfg Features) => GetFeatureConfig cfg where Source #

Don't export methods of this typeclass

Minimal complete definition

Nothing

Associated Types

type GetFeatureForUserConstraints cfg (r :: EffectRow) :: Constraint Source #

type GetFeatureForUserConstraints cfg (r :: EffectRow) = DefaultGetFeatureForUserConstraints cfg r

type ComputeFeatureConstraints cfg (r :: EffectRow) :: Constraint Source #

Methods

getFeatureForUser :: GetFeatureForUserConstraints cfg r => UserId -> Sem r (LockableFeature cfg) Source #

default getFeatureForUser :: DefaultGetFeatureForUserConstraints cfg r => UserId -> Sem r (LockableFeature cfg) Source #

computeFeature :: ComputeFeatureConstraints cfg r => TeamId -> LockableFeature cfg -> DbFeature cfg -> Sem r (LockableFeature cfg) Source #

Instances

Instances details
GetFeatureConfig AppLockConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig ClassifiedDomainsConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig ConferenceCallingConfig Source #

Conference calling gets enabled automatically once unlocked. To achieve that, the default feature status in the unlocked case is forced to be "enabled" before the database data is applied.

Previously, we were assuming that this feature would be left as "unlocked", and the clients were simply setting the status field. Now, the pre-existing status field is reinterpreted as the lock status, which means that the status will be NULL in many cases. The defaulting logic in computeFeature here makes sure that the status is aligned with the lock status in those situations.

Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig DigitalSignaturesConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig EnforceFileDownloadLocationConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig ExposeInvitationURLsToTeamAdminConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig FileSharingConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig GuestLinksConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig LegalholdConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig LimitedEventFanoutConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig MLSConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig MlsE2EIdConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig MlsMigrationConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig OutlookCalIntegrationConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig SSOConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig SearchVisibilityAvailableConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig SearchVisibilityInboundConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig SelfDeletingMessagesConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig SndFactorPasswordChallengeConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

GetFeatureConfig ValidateSAMLEmailsConfig Source # 
Instance details

Defined in Galley.API.Teams.Features.Get

class GetFeatureConfig cfg => SetFeatureConfig cfg where Source #

Don't export methods of this typeclass

Minimal complete definition

Nothing

Associated Types

type SetFeatureForTeamConstraints cfg (r :: EffectRow) :: Constraint Source #

Methods

prepareFeature :: SetFeatureForTeamConstraints cfg r => TeamId -> LockableFeature cfg -> Sem r (LockableFeature cfg) Source #

This method takes a feature about to be set, performs the required checks, makes any related updates via the internal API, then finally returns the feature to be persisted and pushed to clients.

The default simply returns the original feature unchanged, which should be enough for most features.

Instances

Instances details
SetFeatureConfig AppLockConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig ConferenceCallingConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig DigitalSignaturesConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig EnforceFileDownloadLocationConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig ExposeInvitationURLsToTeamAdminConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig FileSharingConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig GuestLinksConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig LegalholdConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig LimitedEventFanoutConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig MLSConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig MlsE2EIdConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig MlsMigrationConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig OutlookCalIntegrationConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig SSOConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig SearchVisibilityAvailableConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig SearchVisibilityInboundConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig SelfDeletingMessagesConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig SndFactorPasswordChallengeConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

SetFeatureConfig ValidateSAMLEmailsConfig Source # 
Instance details

Defined in Galley.API.Teams.Features

guardSecondFactorDisabled :: forall r. (Member TeamFeatureStore r, Member (Input Opts) r, Member (ErrorS 'AccessDenied) r, Member TeamStore r, Member ConversationStore r) => UserId -> ConvId -> Sem r () Source #

If second factor auth is enabled, make sure that end-points that don't support it, but should, are blocked completely. (This is a workaround until we have 2FA for those end-points as well.)

This function exists to resolve a cyclic dependency.