Update discoverability confirmation dialog
This commit is contained in:
@@ -120,7 +120,7 @@ const handleSeatTypeChange = (newValue: WorkspaceSeatType) => {
|
||||
if (newValue === currentSeatType.value) return
|
||||
|
||||
// If setting to Editor on paid plan, show confirmation
|
||||
if (newValue === SeatTypes.Editor && isSelfServePlan) {
|
||||
if (newValue === SeatTypes.Editor && isSelfServePlan.value) {
|
||||
pendingNewSeatType.value = newValue
|
||||
showConfirmSeatTypeDialog.value = true
|
||||
return
|
||||
|
||||
@@ -66,6 +66,9 @@
|
||||
<p class="text-body-xs text-foreground mb-2">
|
||||
This will allow users with verified domain emails to join automatically without
|
||||
admin approval.
|
||||
<span v-if="workspace.defaultSeatType === SeatTypes.Editor && isSelfServePlan">
|
||||
They will join on a paid Editor seat.
|
||||
</span>
|
||||
</p>
|
||||
<p class="text-body-xs text-foreground">Are you sure you want to enable this?</p>
|
||||
</SettingsConfirmDialog>
|
||||
@@ -73,7 +76,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { Roles } from '@speckle/shared'
|
||||
import { Roles, SeatTypes } from '@speckle/shared'
|
||||
import { useMutation } from '@vue/apollo-composable'
|
||||
import { graphql } from '~/lib/common/generated/gql'
|
||||
import type { SettingsWorkspacesSecurityDiscoverability_WorkspaceFragment } from '~/lib/common/generated/gql/graphql'
|
||||
@@ -82,6 +85,7 @@ import {
|
||||
workspaceUpdateDiscoverabilityMutation,
|
||||
workspaceUpdateAutoJoinMutation
|
||||
} from '~/lib/workspaces/graphql/mutations'
|
||||
import { useWorkspacePlan } from '~/lib/workspaces/composables/plan'
|
||||
|
||||
enum JoinPolicy {
|
||||
AdminApproval = 'admin-approval',
|
||||
@@ -99,6 +103,7 @@ graphql(`
|
||||
}
|
||||
discoverabilityEnabled
|
||||
discoverabilityAutoJoinEnabled
|
||||
defaultSeatType
|
||||
}
|
||||
`)
|
||||
|
||||
@@ -112,6 +117,7 @@ const { mutate: updateDiscoverability } = useMutation(
|
||||
)
|
||||
const { mutate: updateAutoJoin } = useMutation(workspaceUpdateAutoJoinMutation)
|
||||
const { triggerNotification } = useGlobalToast()
|
||||
const { isSelfServePlan } = useWorkspacePlan(props.workspace.slug)
|
||||
|
||||
const showConfirmJoinPolicyDialog = ref(false)
|
||||
const pendingIsAutoJoinEnabled = ref(false)
|
||||
|
||||
@@ -133,7 +133,7 @@ type Documents = {
|
||||
"\n query WorkspaceAvailableEditorSeats($slug: String!) {\n workspaceBySlug(slug: $slug) {\n id\n seats {\n editors {\n available\n }\n }\n }\n }\n": typeof types.WorkspaceAvailableEditorSeatsDocument,
|
||||
"\n fragment SettingsWorkspacesRegionsSelect_ServerRegionItem on ServerRegionItem {\n id\n key\n name\n description\n }\n": typeof types.SettingsWorkspacesRegionsSelect_ServerRegionItemFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDefaultSeat_Workspace on Workspace {\n id\n slug\n defaultSeatType\n discoverabilityAutoJoinEnabled\n role\n }\n": typeof types.SettingsWorkspacesSecurityDefaultSeat_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDiscoverability_Workspace on Workspace {\n id\n slug\n role\n domains {\n id\n domain\n }\n discoverabilityEnabled\n discoverabilityAutoJoinEnabled\n }\n": typeof types.SettingsWorkspacesSecurityDiscoverability_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDiscoverability_Workspace on Workspace {\n id\n slug\n role\n domains {\n id\n domain\n }\n discoverabilityEnabled\n discoverabilityAutoJoinEnabled\n defaultSeatType\n }\n": typeof types.SettingsWorkspacesSecurityDiscoverability_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDomainManagement_Workspace on Workspace {\n id\n role\n discoverabilityEnabled\n domainBasedMembershipProtectionEnabled\n hasAccessToDomainBasedSecurityPolicies: hasAccessToFeature(\n featureName: domainBasedSecurityPolicies\n )\n hasAccessToSSO: hasAccessToFeature(featureName: oidcSso)\n domains {\n id\n domain\n }\n }\n": typeof types.SettingsWorkspacesSecurityDomainManagement_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDomainProtection_Workspace on Workspace {\n id\n slug\n role\n domainBasedMembershipProtectionEnabled\n hasAccessToDomainBasedSecurityPolicies: hasAccessToFeature(\n featureName: domainBasedSecurityPolicies\n )\n domains {\n id\n }\n }\n": typeof types.SettingsWorkspacesSecurityDomainProtection_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDomainRemoveDialog_WorkspaceDomain on WorkspaceDomain {\n id\n domain\n }\n": typeof types.SettingsWorkspacesSecurityDomainRemoveDialog_WorkspaceDomainFragmentDoc,
|
||||
@@ -578,7 +578,7 @@ const documents: Documents = {
|
||||
"\n query WorkspaceAvailableEditorSeats($slug: String!) {\n workspaceBySlug(slug: $slug) {\n id\n seats {\n editors {\n available\n }\n }\n }\n }\n": types.WorkspaceAvailableEditorSeatsDocument,
|
||||
"\n fragment SettingsWorkspacesRegionsSelect_ServerRegionItem on ServerRegionItem {\n id\n key\n name\n description\n }\n": types.SettingsWorkspacesRegionsSelect_ServerRegionItemFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDefaultSeat_Workspace on Workspace {\n id\n slug\n defaultSeatType\n discoverabilityAutoJoinEnabled\n role\n }\n": types.SettingsWorkspacesSecurityDefaultSeat_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDiscoverability_Workspace on Workspace {\n id\n slug\n role\n domains {\n id\n domain\n }\n discoverabilityEnabled\n discoverabilityAutoJoinEnabled\n }\n": types.SettingsWorkspacesSecurityDiscoverability_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDiscoverability_Workspace on Workspace {\n id\n slug\n role\n domains {\n id\n domain\n }\n discoverabilityEnabled\n discoverabilityAutoJoinEnabled\n defaultSeatType\n }\n": types.SettingsWorkspacesSecurityDiscoverability_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDomainManagement_Workspace on Workspace {\n id\n role\n discoverabilityEnabled\n domainBasedMembershipProtectionEnabled\n hasAccessToDomainBasedSecurityPolicies: hasAccessToFeature(\n featureName: domainBasedSecurityPolicies\n )\n hasAccessToSSO: hasAccessToFeature(featureName: oidcSso)\n domains {\n id\n domain\n }\n }\n": types.SettingsWorkspacesSecurityDomainManagement_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDomainProtection_Workspace on Workspace {\n id\n slug\n role\n domainBasedMembershipProtectionEnabled\n hasAccessToDomainBasedSecurityPolicies: hasAccessToFeature(\n featureName: domainBasedSecurityPolicies\n )\n domains {\n id\n }\n }\n": types.SettingsWorkspacesSecurityDomainProtection_WorkspaceFragmentDoc,
|
||||
"\n fragment SettingsWorkspacesSecurityDomainRemoveDialog_WorkspaceDomain on WorkspaceDomain {\n id\n domain\n }\n": types.SettingsWorkspacesSecurityDomainRemoveDialog_WorkspaceDomainFragmentDoc,
|
||||
@@ -1397,7 +1397,7 @@ export function graphql(source: "\n fragment SettingsWorkspacesSecurityDefaultS
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
export function graphql(source: "\n fragment SettingsWorkspacesSecurityDiscoverability_Workspace on Workspace {\n id\n slug\n role\n domains {\n id\n domain\n }\n discoverabilityEnabled\n discoverabilityAutoJoinEnabled\n }\n"): (typeof documents)["\n fragment SettingsWorkspacesSecurityDiscoverability_Workspace on Workspace {\n id\n slug\n role\n domains {\n id\n domain\n }\n discoverabilityEnabled\n discoverabilityAutoJoinEnabled\n }\n"];
|
||||
export function graphql(source: "\n fragment SettingsWorkspacesSecurityDiscoverability_Workspace on Workspace {\n id\n slug\n role\n domains {\n id\n domain\n }\n discoverabilityEnabled\n discoverabilityAutoJoinEnabled\n defaultSeatType\n }\n"): (typeof documents)["\n fragment SettingsWorkspacesSecurityDiscoverability_Workspace on Workspace {\n id\n slug\n role\n domains {\n id\n domain\n }\n discoverabilityEnabled\n discoverabilityAutoJoinEnabled\n defaultSeatType\n }\n"];
|
||||
/**
|
||||
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
|
||||
*/
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user