mirror of
https://github.com/appwrite/console.git
synced 2026-06-06 19:27:48 +00:00
list policies
This commit is contained in:
@@ -14,56 +14,52 @@ const ProjectEmailPolicyId = {
|
||||
DenyFreeEmail: 'deny-free-email'
|
||||
} as const;
|
||||
|
||||
type ProjectPolicy = Models.PolicyList['policies'][number] | EnabledPolicy;
|
||||
type EmailPolicyId = (typeof ProjectEmailPolicyId)[keyof typeof ProjectEmailPolicyId];
|
||||
|
||||
const getDefaultEnabledPolicy = (policyId: EmailPolicyId): EnabledPolicy => ({
|
||||
$id: policyId,
|
||||
enabled: false
|
||||
});
|
||||
|
||||
export const load: PageLoad = async ({ depends, params }) => {
|
||||
depends(Dependencies.PROJECT);
|
||||
|
||||
const projectSdk = sdk.forProject(params.region, params.project).project;
|
||||
const [
|
||||
membershipPrivacyPolicy,
|
||||
passwordDictionaryPolicy,
|
||||
passwordHistoryPolicy,
|
||||
passwordPersonalDataPolicy,
|
||||
sessionAlertPolicy,
|
||||
sessionDurationPolicy,
|
||||
sessionInvalidationPolicy,
|
||||
sessionLimitPolicy,
|
||||
userLimitPolicy,
|
||||
denyAliasedEmailPolicy,
|
||||
denyDisposableEmailPolicy,
|
||||
denyFreeEmailPolicy
|
||||
] = await Promise.all([
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Membershipprivacy }),
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Passworddictionary }),
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Passwordhistory }),
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Passwordpersonaldata }),
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Sessionalert }),
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Sessionduration }),
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Sessioninvalidation }),
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Sessionlimit }),
|
||||
projectSdk.getPolicy({ policyId: ProjectPolicyId.Userlimit }),
|
||||
projectSdk.getPolicy({
|
||||
policyId: ProjectEmailPolicyId.DenyAliasedEmail as ProjectPolicyId
|
||||
}),
|
||||
projectSdk.getPolicy({
|
||||
policyId: ProjectEmailPolicyId.DenyDisposableEmail as ProjectPolicyId
|
||||
}),
|
||||
projectSdk.getPolicy({
|
||||
policyId: ProjectEmailPolicyId.DenyFreeEmail as ProjectPolicyId
|
||||
})
|
||||
]);
|
||||
const { policies } = await sdk.forProject(params.region, params.project).project.listPolicies();
|
||||
const policiesById = Object.fromEntries(
|
||||
(policies as ProjectPolicy[]).map((policy) => [policy.$id, policy])
|
||||
) as Partial<Record<ProjectPolicyId | EmailPolicyId, ProjectPolicy>>;
|
||||
|
||||
return {
|
||||
membershipPrivacyPolicy: membershipPrivacyPolicy as Models.PolicyMembershipPrivacy,
|
||||
passwordDictionaryPolicy: passwordDictionaryPolicy as Models.PolicyPasswordDictionary,
|
||||
passwordHistoryPolicy: passwordHistoryPolicy as Models.PolicyPasswordHistory,
|
||||
passwordPersonalDataPolicy: passwordPersonalDataPolicy as Models.PolicyPasswordPersonalData,
|
||||
sessionAlertPolicy: sessionAlertPolicy as Models.PolicySessionAlert,
|
||||
sessionDurationPolicy: sessionDurationPolicy as Models.PolicySessionDuration,
|
||||
sessionInvalidationPolicy: sessionInvalidationPolicy as Models.PolicySessionInvalidation,
|
||||
sessionLimitPolicy: sessionLimitPolicy as Models.PolicySessionLimit,
|
||||
userLimitPolicy: userLimitPolicy as Models.PolicyUserLimit,
|
||||
denyAliasedEmailPolicy: denyAliasedEmailPolicy as EnabledPolicy,
|
||||
denyDisposableEmailPolicy: denyDisposableEmailPolicy as EnabledPolicy,
|
||||
denyFreeEmailPolicy: denyFreeEmailPolicy as EnabledPolicy
|
||||
membershipPrivacyPolicy: policiesById[
|
||||
ProjectPolicyId.Membershipprivacy
|
||||
] as Models.PolicyMembershipPrivacy,
|
||||
passwordDictionaryPolicy: policiesById[
|
||||
ProjectPolicyId.Passworddictionary
|
||||
] as Models.PolicyPasswordDictionary,
|
||||
passwordHistoryPolicy: policiesById[
|
||||
ProjectPolicyId.Passwordhistory
|
||||
] as Models.PolicyPasswordHistory,
|
||||
passwordPersonalDataPolicy: policiesById[
|
||||
ProjectPolicyId.Passwordpersonaldata
|
||||
] as Models.PolicyPasswordPersonalData,
|
||||
sessionAlertPolicy: policiesById[ProjectPolicyId.Sessionalert] as Models.PolicySessionAlert,
|
||||
sessionDurationPolicy: policiesById[
|
||||
ProjectPolicyId.Sessionduration
|
||||
] as Models.PolicySessionDuration,
|
||||
sessionInvalidationPolicy: policiesById[
|
||||
ProjectPolicyId.Sessioninvalidation
|
||||
] as Models.PolicySessionInvalidation,
|
||||
sessionLimitPolicy: policiesById[ProjectPolicyId.Sessionlimit] as Models.PolicySessionLimit,
|
||||
userLimitPolicy: policiesById[ProjectPolicyId.Userlimit] as Models.PolicyUserLimit,
|
||||
denyAliasedEmailPolicy:
|
||||
(policiesById[ProjectEmailPolicyId.DenyAliasedEmail] as EnabledPolicy) ??
|
||||
getDefaultEnabledPolicy(ProjectEmailPolicyId.DenyAliasedEmail),
|
||||
denyDisposableEmailPolicy:
|
||||
(policiesById[ProjectEmailPolicyId.DenyDisposableEmail] as EnabledPolicy) ??
|
||||
getDefaultEnabledPolicy(ProjectEmailPolicyId.DenyDisposableEmail),
|
||||
denyFreeEmailPolicy:
|
||||
(policiesById[ProjectEmailPolicyId.DenyFreeEmail] as EnabledPolicy) ??
|
||||
getDefaultEnabledPolicy(ProjectEmailPolicyId.DenyFreeEmail)
|
||||
};
|
||||
};
|
||||
|
||||
+24
-18
@@ -52,23 +52,32 @@
|
||||
try {
|
||||
const projectSdk = sdk.forProject(project.region, project.$id).project;
|
||||
|
||||
currentSubmit = Submit.AuthAliasedEmailsUpdate;
|
||||
await projectSdk.updateDenyAliasedEmailPolicy({
|
||||
enabled: authAliasedEmails
|
||||
});
|
||||
hasAppliedServerChange = true;
|
||||
if (authAliasedEmails !== denyAliasedEmailPolicy.enabled) {
|
||||
currentSubmit = Submit.AuthAliasedEmailsUpdate;
|
||||
await projectSdk.updateDenyAliasedEmailPolicy({
|
||||
enabled: authAliasedEmails
|
||||
});
|
||||
hasAppliedServerChange = true;
|
||||
trackEvent(Submit.AuthAliasedEmailsUpdate);
|
||||
}
|
||||
|
||||
currentSubmit = Submit.AuthDisposableEmailsUpdate;
|
||||
await projectSdk.updateDenyDisposableEmailPolicy({
|
||||
enabled: authDisposableEmails
|
||||
});
|
||||
hasAppliedServerChange = true;
|
||||
if (authDisposableEmails !== denyDisposableEmailPolicy.enabled) {
|
||||
currentSubmit = Submit.AuthDisposableEmailsUpdate;
|
||||
await projectSdk.updateDenyDisposableEmailPolicy({
|
||||
enabled: authDisposableEmails
|
||||
});
|
||||
hasAppliedServerChange = true;
|
||||
trackEvent(Submit.AuthDisposableEmailsUpdate);
|
||||
}
|
||||
|
||||
currentSubmit = Submit.AuthFreeEmailsUpdate;
|
||||
await projectSdk.updateDenyFreeEmailPolicy({
|
||||
enabled: authFreeEmails
|
||||
});
|
||||
hasAppliedServerChange = true;
|
||||
if (authFreeEmails !== denyFreeEmailPolicy.enabled) {
|
||||
currentSubmit = Submit.AuthFreeEmailsUpdate;
|
||||
await projectSdk.updateDenyFreeEmailPolicy({
|
||||
enabled: authFreeEmails
|
||||
});
|
||||
hasAppliedServerChange = true;
|
||||
trackEvent(Submit.AuthFreeEmailsUpdate);
|
||||
}
|
||||
|
||||
await invalidate(Dependencies.PROJECT);
|
||||
|
||||
@@ -76,9 +85,6 @@
|
||||
type: 'success',
|
||||
message: 'Updated signup email security settings.'
|
||||
});
|
||||
trackEvent(Submit.AuthAliasedEmailsUpdate);
|
||||
trackEvent(Submit.AuthDisposableEmailsUpdate);
|
||||
trackEvent(Submit.AuthFreeEmailsUpdate);
|
||||
} catch (error) {
|
||||
if (hasAppliedServerChange) {
|
||||
await invalidate(Dependencies.PROJECT);
|
||||
|
||||
Reference in New Issue
Block a user