[#3364] added mailcow OAuth2 provider

Co-authored-by: thisni1s <nils@jn2p.de>
This commit is contained in:
Gani Georgiev
2023-10-14 14:46:01 +03:00
parent 69983bff5e
commit 01e33c07fe
45 changed files with 3332 additions and 3219 deletions
@@ -102,7 +102,12 @@
{#if provider.optionsComponent}
<div class="col-lg-12">
<svelte:component this={provider.optionsComponent} key={provider.key} bind:config />
<svelte:component
this={provider.optionsComponent}
key={provider.key}
bind:config
{...provider.optionsComponentProps || {}}
/>
</div>
{/if}
</form>
@@ -1,23 +0,0 @@
<script>
import Field from "@/components/base/Field.svelte";
export let key = "";
export let config = {};
</script>
<div class="section-title">Endpoints</div>
<Field class="form-field {config.enabled ? 'required' : ''}" name="{key}.authUrl" let:uniqueId>
<label for={uniqueId}>Auth URL</label>
<input type="url" id={uniqueId} bind:value={config.authUrl} required={config.enabled} />
<div class="help-block">Eg. https://example.com/authorize/</div>
</Field>
<Field class="form-field {config.enabled ? 'required' : ''}" name="{key}.tokenUrl" let:uniqueId>
<label for={uniqueId}>Token URL</label>
<input type="url" id={uniqueId} bind:value={config.tokenUrl} required={config.enabled} />
<div class="help-block">Eg. https://example.com/token/</div>
</Field>
<Field class="form-field {config.enabled ? 'required' : ''}" name="{key}.userApiUrl" let:uniqueId>
<label for={uniqueId}>User API URL</label>
<input type="url" id={uniqueId} bind:value={config.userApiUrl} required={config.enabled} />
<div class="help-block">Eg. https://example.com/userinfo/</div>
</Field>
@@ -3,18 +3,22 @@
export let key = "";
export let config = {};
export let required = false;
export let title = "Provider endpoints";
$: isRequired = required && config?.enabled;
</script>
<div class="section-title">Selfhosted endpoints (optional)</div>
<Field class="form-field" name="{key}.authUrl" let:uniqueId>
<div class="section-title">{title}</div>
<Field class="form-field {isRequired ? 'required' : ''}" name="{key}.authUrl" let:uniqueId>
<label for={uniqueId}>Auth URL</label>
<input type="url" id={uniqueId} bind:value={config.authUrl} />
<input type="url" id={uniqueId} bind:value={config.authUrl} required={isRequired} />
</Field>
<Field class="form-field" name="{key}.tokenUrl" let:uniqueId>
<Field class="form-field {isRequired ? 'required' : ''}" name="{key}.tokenUrl" let:uniqueId>
<label for={uniqueId}>Token URL</label>
<input type="url" id={uniqueId} bind:value={config.tokenUrl} />
<input type="url" id={uniqueId} bind:value={config.tokenUrl} required={isRequired} />
</Field>
<Field class="form-field" name="{key}.userApiUrl" let:uniqueId>
<Field class="form-field {isRequired ? 'required' : ''}" name="{key}.userApiUrl" let:uniqueId>
<label for={uniqueId}>User API URL</label>
<input type="url" id={uniqueId} bind:value={config.userApiUrl} />
<input type="url" id={uniqueId} bind:value={config.userApiUrl} required={isRequired} />
</Field>