merge v0.23.0-rc changes
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
<script>
|
||||
import { scale } from "svelte/transition";
|
||||
import CommonHelper from "@/utils/CommonHelper";
|
||||
import tooltip from "@/actions/tooltip";
|
||||
import { errors } from "@/stores/errors";
|
||||
import Accordion from "@/components/base/Accordion.svelte";
|
||||
import Field from "@/components/base/Field.svelte";
|
||||
import RuleField from "@/components/collections/RuleField.svelte";
|
||||
|
||||
export let collection;
|
||||
|
||||
$: hasErrors = !CommonHelper.isEmpty($errors?.mfa);
|
||||
</script>
|
||||
|
||||
<Accordion single>
|
||||
<svelte:fragment slot="header">
|
||||
<div class="inline-flex">
|
||||
<i class="ri-shield-check-line"></i>
|
||||
<span class="txt"> Multi-factor authentication (MFA) </span>
|
||||
</div>
|
||||
|
||||
<div class="flex-fill" />
|
||||
|
||||
{#if collection.mfa.enabled}
|
||||
<span class="label label-success">Enabled</span>
|
||||
{:else}
|
||||
<span class="label">Disabled</span>
|
||||
{/if}
|
||||
|
||||
{#if hasErrors}
|
||||
<i
|
||||
class="ri-error-warning-fill txt-danger"
|
||||
transition:scale={{ duration: 150, start: 0.7 }}
|
||||
use:tooltip={{ text: "Has errors", position: "left" }}
|
||||
/>
|
||||
{/if}
|
||||
</svelte:fragment>
|
||||
|
||||
<div class="content m-b-sm">
|
||||
<p class="txt-bold">This feature is experimental and may change in the future.</p>
|
||||
<p>
|
||||
Multi-factor authentication (MFA) requires the user to authenticate with any 2 different auth
|
||||
methods (otp, identity/password, oauth2) before issuing an auth token.
|
||||
<a
|
||||
href={import.meta.env.PB_MFA_DOCS}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
class="txt-sm link-hint"
|
||||
title="Learn more"
|
||||
>
|
||||
<em>(Learn more)</em>
|
||||
</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="grid">
|
||||
<Field class="form-field form-field-toggle" name="mfa.enabled" let:uniqueId>
|
||||
<input type="checkbox" id={uniqueId} bind:checked={collection.mfa.enabled} />
|
||||
<label for={uniqueId}>
|
||||
<span class="txt">Enable</span>
|
||||
</label>
|
||||
</Field>
|
||||
|
||||
<div class="content" class:fade={!collection.mfa.enabled}>
|
||||
<RuleField
|
||||
label="MFA rule"
|
||||
formKey="mfa.rule"
|
||||
superuserToggle={false}
|
||||
disabled={!collection.mfa.enabled}
|
||||
placeholder="Leave empty to require MFA for everyone"
|
||||
{collection}
|
||||
bind:rule={collection.mfa.rule}
|
||||
>
|
||||
<svelte:fragment>
|
||||
<p>This optional rule could be used to enable/disable MFA per account basis.</p>
|
||||
<p>
|
||||
For example, to require MFA only for accounts with non-empty email you can set it to
|
||||
<code>email != ''</code>.
|
||||
</p>
|
||||
<p>Leave the rule empty to require MFA for everyone.</p>
|
||||
</svelte:fragment>
|
||||
</RuleField>
|
||||
</div>
|
||||
</div>
|
||||
</Accordion>
|
||||
Reference in New Issue
Block a user