From 29f405385e1059e633d3a81348abcef4fb382c12 Mon Sep 17 00:00:00 2001 From: Alex <$(pass /github/email)> Date: Sun, 2 Mar 2025 10:27:56 +0100 Subject: [PATCH] implemented permission system --- frontend/src/lib/components/Header.svelte | 4 +- .../src/lib/components/UserEditForm.svelte | 281 +++++++++--------- .../src/routes/auth/about/[id]/+page.svelte | 4 +- .../routes/auth/admin/users/+page.server.js | 6 +- .../src/routes/auth/admin/users/+page.svelte | 163 ++++++++-- go-backend/internal/constants/constants.go | 20 +- 6 files changed, 311 insertions(+), 167 deletions(-) diff --git a/frontend/src/lib/components/Header.svelte b/frontend/src/lib/components/Header.svelte index f5faa92..756d0a0 100644 --- a/frontend/src/lib/components/Header.svelte +++ b/frontend/src/lib/components/Header.svelte @@ -5,6 +5,8 @@ import { page } from '$app/stores'; import { t } from 'svelte-i18n'; import { writable } from 'svelte/store'; + import { PERMISSIONS } from '$lib/utils/constants'; + import { hasPrivilige } from '$lib/utils/helpers'; let isMobileMenuOpen = false; @@ -104,7 +106,7 @@ {$page.data.user.last_name} - {#if $page.data.user.role_id > 0} + {#if hasPrivilige($page.data.user, PERMISSIONS.View)}
- {#if role_id === 8} + {#if hasPrivilige(editor, PERMISSIONS.Super)}- {$t('subscription.monthly_fee')}: - {selectedSubscriptionModel?.monthly_fee || '-'} € -
-- {$t('subscription.hourly_rate')}: - {selectedSubscriptionModel?.hourly_rate || '-'} € -
- {#if selectedSubscriptionModel?.included_hours_per_year} + {#if hasPrivilige(editor, PERMISSIONS.Member)} +- {$t('subscription.included_hours_per_year')}: - {selectedSubscriptionModel?.included_hours_per_year} + {$t('subscription.monthly_fee')}: + {selectedSubscriptionModel?.monthly_fee || '-'} €
- {/if} - {#if selectedSubscriptionModel?.included_hours_per_month}- {$t('subscription.included_hours_per_month')}: - {selectedSubscriptionModel?.included_hours_per_month} + {$t('subscription.hourly_rate')}: + {selectedSubscriptionModel?.hourly_rate || '-'} €
- {/if} -+ {$t('subscription.included_hours_per_year')}: + {selectedSubscriptionModel?.included_hours_per_year} +
+ {/if} + {#if selectedSubscriptionModel?.included_hours_per_month} ++ {$t('subscription.included_hours_per_month')}: + {selectedSubscriptionModel?.included_hours_per_month} +
+ {/if} +
{$t('details')}:
@@ -465,7 +478,7 @@
label={$t('start')}
bind:value={localUser.membership.start_date}
placeholder={$t('placeholder.start_date')}
- readonly={role_id === 0}
+ readonly={readonlyUser}
/>