From 4debbd90232c8b574d89b47a029443acef6f3ddc Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 30 Sep 2022 11:09:15 +0200 Subject: [PATCH] fix: team and users --- src/lib/components/dropListItem.svelte | 3 +- src/lib/components/modal.svelte | 2 +- src/lib/components/pagination.svelte | 68 +++++----- src/lib/components/permissions/custom.svelte | 56 ++++++--- .../components/permissions/permissions.svelte | 47 ++++--- src/lib/components/permissions/row.svelte | 20 +++ src/lib/components/permissions/team.svelte | 119 ++++++++++++------ src/lib/components/permissions/user.svelte | 119 ++++++++++++------ src/lib/elements/forms/inputSearch.svelte | 8 ++ src/lib/layout/header.svelte | 6 +- 10 files changed, 304 insertions(+), 144 deletions(-) create mode 100644 src/lib/components/permissions/row.svelte diff --git a/src/lib/components/dropListItem.svelte b/src/lib/components/dropListItem.svelte index 44ae50305..111f3f7f2 100644 --- a/src/lib/components/dropListItem.svelte +++ b/src/lib/components/dropListItem.svelte @@ -1,9 +1,10 @@
  • - + + + diff --git a/src/lib/components/permissions/permissions.svelte b/src/lib/components/permissions/permissions.svelte index bdcd68941..13f71dffa 100644 --- a/src/lib/components/permissions/permissions.svelte +++ b/src/lib/components/permissions/permissions.svelte @@ -16,6 +16,7 @@ import { writable } from 'svelte/store'; import { DropList, DropListItem } from '..'; import Custom from './custom.svelte'; + import Row from './row.svelte'; import Team from './team.svelte'; import User from './user.svelte'; @@ -24,6 +25,7 @@ let showUser = false; let showTeam = false; + let showCustom = false; let showDropdown = false; const groups = writable>(new Map()); @@ -39,24 +41,28 @@ }); function create(event: CustomEvent) { - groups.update((n) => { - for (const role of event.detail) { - if (n.has(role)) { - return n; - } + for (const role of event.detail) { + addRole(role); + } - n.set(role, { - create: false, - read: false, - update: false, - delete: false - }); - } + showTeam = showUser = false; + } + + function addRole(role: string) { + if ($groups.has(role)) { + return; + } + + groups.update((n) => { + n.set(role, { + create: false, + read: false, + update: false, + delete: false + }); return n; }); - - showTeam = showUser = false; } function fromPermissionString(permission: string): void { @@ -136,7 +142,7 @@ {#each [...$groups] as [role, permission]} - + {#if withCreate} @@ -200,10 +206,21 @@ Add role + addRole('any')}> + Any + + addRole('guests')}> + All guests + + addRole('users')}> + All users + (showUser = true)}>Select users (showTeam = true)}>Select teams + (showCustom = true)}>Custom permission + diff --git a/src/lib/components/permissions/row.svelte b/src/lib/components/permissions/row.svelte new file mode 100644 index 000000000..58454dc2c --- /dev/null +++ b/src/lib/components/permissions/row.svelte @@ -0,0 +1,20 @@ + + +
    +
    + {#if role === 'users'} +
    Users
    + {:else if role === 'guests'} +
    Guests
    + {:else if role === 'any'} +
    Any
    + {:else} +
    {role}
    + {/if} +
    +
    diff --git a/src/lib/components/permissions/team.svelte b/src/lib/components/permissions/team.svelte index 8b3c6f5c0..b9bf837b0 100644 --- a/src/lib/components/permissions/team.svelte +++ b/src/lib/components/permissions/team.svelte @@ -1,11 +1,11 @@
    - - Select team + + Select teams -
    - - - {#each results as team (team.$id)} - {@const role = `team:${team.$id}`} - - - - - {/each} - -
    - selected.add(role)} /> - -
    -
    - -
    -
    -
    {team.name}
    -
    {team.$id}
    -
    -
    -
    + {#if results?.teams} +
    + + + {#each results.teams as team (team.$id)} + {@const role = `team:${team.$id}`} + {@const exists = $groups.has(role)} + + + + + {/each} + +
    + onSelection(event, role)} /> + + +
    +
    + {/if} +
    +

    Total results: {results?.total}

    +
    - + diff --git a/src/lib/components/permissions/user.svelte b/src/lib/components/permissions/user.svelte index ead290e07..806760bea 100644 --- a/src/lib/components/permissions/user.svelte +++ b/src/lib/components/permissions/user.svelte @@ -1,11 +1,11 @@
    - - Select team + + Select users -
    - - - {#each results as user (user.$id)} - {@const role = `user:${user.$id}`} - - - - - {/each} - -
    - selected.add(role)} /> - -
    -
    - -
    -
    -
    {user.name}
    -
    {user.$id}
    -
    -
    -
    + {#if results?.users} +
    + + + {#each results.users as user (user.$id)} + {@const role = `user:${user.$id}`} + {@const exists = $groups.has(role)} + + + + + {/each} + +
    + onSelection(event, role)} /> + + +
    +
    + {/if} +
    +

    Total results: {results?.total}

    +
    - + diff --git a/src/lib/elements/forms/inputSearch.svelte b/src/lib/elements/forms/inputSearch.svelte index e1806d3d7..8149a5652 100644 --- a/src/lib/elements/forms/inputSearch.svelte +++ b/src/lib/elements/forms/inputSearch.svelte @@ -1,5 +1,6 @@