Add permissions to menus

This commit is contained in:
William Bouzourène 2025-01-17 16:21:16 +01:00
parent 6152cff54a
commit 6b27dd545a
4 changed files with 52 additions and 16 deletions

View file

@ -10,14 +10,16 @@ import (
)
type TemplatesGlobals struct {
LoggedIn bool
TotpVerified bool
UserID uint
UserEmail string
UserFullname string
UserIsAdmin bool
TimeStart time.Time
ColorMode string
LoggedIn bool
TotpVerified bool
UserID uint
UserEmail string
UserFullname string
UserIsAdmin bool
TimeStart time.Time
ColorMode string
AllowMembersPage bool
AllowContactsPage bool
}
func TemplatesMiddleware(c *fiber.Ctx) error {
@ -59,6 +61,28 @@ func TemplatesMiddleware(c *fiber.Ctx) error {
globals.UserFullname = user.Name
globals.UserIsAdmin = user.IsAdmin
}
showMember, _ := helpers.PermissionsGetSections(
userid.(uint), "show_member",
)
showArchivedMember, _ := helpers.PermissionsGetSections(
userid.(uint), "show_archived_member",
)
if len(showMember) > 0 || len(showArchivedMember) > 0 {
globals.AllowMembersPage = true
}
showContact, _ := helpers.PermissionsGetSections(
userid.(uint), "show_contact",
)
showArchivedContact, _ := helpers.PermissionsGetSections(
userid.(uint), "show_archived_contact",
)
if len(showContact) > 0 || len(showArchivedContact) > 0 {
globals.AllowContactsPage = true
}
}
totpVerified := sess.Get("totp-verified")

View file

@ -17,7 +17,7 @@
<a class="dashboard-tile" href="/admin/sections">
<div class="alert alert-primary">
<i class="bi-building me-2"></i>
Gestion des <b>sections</b>
Gestion des sections
</div>
</a>
</div>
@ -25,7 +25,7 @@
<a class="dashboard-tile" href="/admin/lists">
<div class="alert alert-primary">
<i class="bi-list-check me-2"></i>
Gestion des <b>listes</b>
Gestion des listes
</div>
</a>
</div>
@ -33,7 +33,7 @@
<a class="dashboard-tile" href="/admin/fields">
<div class="alert alert-primary">
<i class="bi-database-add me-2"></i>
Gestion des <b>champs supplémentaires</b>
Gestion des champs supplémentaires
</div>
</a>
</div>
@ -41,7 +41,7 @@
<a class="dashboard-tile" href="/admin/users">
<div class="alert alert-primary">
<i class="bi-person-square me-2"></i>
Gestion des <b>utilisateurs</b>
Gestion des utilisateurs
</div>
</a>
</div>
@ -49,7 +49,7 @@
<a class="dashboard-tile" href="/admin/roles">
<div class="alert alert-primary">
<i class="bi-briefcase me-2"></i>
Gestion des <b>utilisateurs</b>
Gestion des utilisateurs
</div>
</a>
</div>

View file

@ -12,29 +12,35 @@
</div>
<div class="row">
{% if Globals.AllowMembersPage %}
<div class="col-md-6">
<a class="dashboard-tile" href="/members">
<div class="alert alert-primary">
<i class="bi-people me-2"></i>
Gestion des <b>membres</b>
Gestion des membres
</div>
</a>
</div>
{% endif %}
{% if Globals.AllowContactsPage %}
<div class="col-md-6">
<a class="dashboard-tile" href="/contacts">
<div class="alert alert-primary">
<i class="bi-telephone me-2"></i>
Gestion des <b>contacts</b>
Gestion des contacts
</div>
</a>
</div>
{% endif %}
{% if Globals.UserIsAdmin %}
<div class="col-md-6">
<a class="dashboard-tile" href="/admin">
<div class="alert alert-primary">
<i class="bi-gear me-2"></i>
<b>Administration</b> de l'application
Administration de l'application
</div>
</a>
</div>

View file

@ -22,16 +22,22 @@
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
{% if Globals.TotpVerified %}
{% if Globals.AllowMembersPage %}
<li class="nav-item">
<a class="nav-link active" href="/members">
<i class="bi-people acti me-2"></i>Membres
</a>
</li>
{% endif %}
{% if Globals.AllowContactsPage %}
<li class="nav-item">
<a class="nav-link active" href="/contacts">
<i class="bi-telephone me-2"></i>Contacts
</a>
</li>
{% endif %}
{% if Globals.UserIsAdmin %}
<ul class="navbar-nav me-auto mb-2 mb-lg-0">