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 { type TemplatesGlobals struct {
LoggedIn bool LoggedIn bool
TotpVerified bool TotpVerified bool
UserID uint UserID uint
UserEmail string UserEmail string
UserFullname string UserFullname string
UserIsAdmin bool UserIsAdmin bool
TimeStart time.Time TimeStart time.Time
ColorMode string ColorMode string
AllowMembersPage bool
AllowContactsPage bool
} }
func TemplatesMiddleware(c *fiber.Ctx) error { func TemplatesMiddleware(c *fiber.Ctx) error {
@ -59,6 +61,28 @@ func TemplatesMiddleware(c *fiber.Ctx) error {
globals.UserFullname = user.Name globals.UserFullname = user.Name
globals.UserIsAdmin = user.IsAdmin 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") totpVerified := sess.Get("totp-verified")

View file

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

View file

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

View file

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