{#if users === null || total === null}
{:else} {#if groupIds.length > 0 && !manageAccess}
{groupIds.length} {$i18n.t('groups')}
{#each groupIds as id} {#if selectedGroups[id]}
{ groupIds = groupIds.filter((gid) => gid !== id); delete selectedGroups[id]; }} >
{selectedGroups[id].name}
{selectedGroups[id].member_count}
{/if} {/each}
{/if} {#if userIds.length > 0 && !manageAccess}
{userIds.length} {$i18n.t('users')}
{#each userIds as id} {#if selectedUsers[id]}
{ userIds = userIds.filter((uid) => uid !== id); delete selectedUsers[id]; }} >
{selectedUsers[id].name}
{/if} {/each}
{/if}
{#if users.length > 0}
{#if includeGroups && filteredGroups.length > 0}
{$i18n.t('Groups')}
{#each filteredGroups as group, groupIdx (group.id)}
{ if (manageAccess && !accessRoles.includes('write')) { return } if ((groupIds ?? []).includes(group.id)) { if (!manageAccess || (manageAccess && (accessControl?.write?.group_ids ?? []).includes(group.id))){ groupIds = groupIds.filter((id) => id !== group.id); delete selectedGroups[group.id]; } if(manageAccess){ if ((accessControl?.write?.group_ids ?? []).includes(group.id)) { accessControl.write.group_ids = ( accessControl?.write?.group_ids ?? [] ).filter((group_id) => group_id !== group.id); accessControl.read.group_ids = ( accessControl?.read?.group_ids ?? [] ).filter((group_id) => group_id !== group.id); } else { accessControl.write.group_ids = [ ...(accessControl?.write?.group_ids ?? []), group.id ]; } } } else { groupIds = [...groupIds, group.id]; selectedGroups[group.id] = group; if(manageAccess){ accessControl.read.group_ids = [ ...(accessControl?.read?.group_ids ?? []), group.id ]; } } if(manageAccess){ onChange(accessControl); } }} >
{group.name}
{group.member_count}
{#if manageAccess && (accessControl?.write?.group_ids ?? []).includes(group.id)}
{:else if manageAccess && (accessControl?.read?.group_ids ?? []).includes(group.id)}
{:else}
{/if}
{/each}
{/if}
{$i18n.t('Users')}
{#each users as user, userIdx (user.id)} {#if user?.id !== $_user?.id}
{ if (manageAccess && !accessRoles.includes('write')) { return } if ((userIds ?? []).includes(user.id)) { if (!manageAccess || (manageAccess && (accessControl?.write?.user_ids ?? []).includes(user.id))){ userIds = userIds.filter((id) => id !== user.id); delete selectedUsers[user.id]; } if(manageAccess){ if ((accessControl?.write?.user_ids ?? []).includes(user.id)) { accessControl.write.user_ids = ( accessControl?.write?.user_ids ?? [] ).filter((user_id) => user_id !== user.id); accessControl.read.user_ids = ( accessControl?.read?.user_ids ?? [] ).filter((user_id) => user_id !== user.id); } else { accessControl.write.user_ids = [ ...(accessControl?.write?.user_ids ?? []), user.id ]; } } } else { userIds = [...userIds, user.id]; selectedUsers[user.id] = user; if(manageAccess){ accessControl.read.user_ids = [ ...(accessControl?.read?.user_ids ?? []), user.id ]; } } if(manageAccess){ onChange(accessControl); } }} >
{#if manageAccess}
{user.name}
{user?.email}
{:else}
{user.name}
{/if} {#if user?.is_active}
{/if}
{#if manageAccess && (accessControl?.write?.user_ids ?? []).includes(user.id)}
{:else if manageAccess && (accessControl?.read?.user_ids ?? []).includes(user.id)}
{:else}
{/if}
{/if} {/each}
{:else}
{$i18n.t('No users were found.')}
{/if} {/if}