added perm checks to season pages

This commit is contained in:
2026-02-09 19:56:42 +11:00
parent d01485d139
commit e133b3f0b9
6 changed files with 83 additions and 107 deletions

View File

@@ -4,6 +4,8 @@ import "git.haelnorr.com/h/oslstats/internal/db"
import "git.haelnorr.com/h/oslstats/internal/view/baseview"
import "time"
import "strconv"
import "git.haelnorr.com/h/oslstats/internal/permissions"
import "git.haelnorr.com/h/oslstats/internal/contexts"
templ DetailPage(season *db.Season) {
@baseview.Layout(season.Name) {
@@ -14,6 +16,10 @@ templ DetailPage(season *db.Season) {
}
templ SeasonDetails(season *db.Season) {
{{
permCache := contexts.Permissions(ctx)
canEditSeason := permCache.HasPermission(permissions.SeasonsUpdate)
}}
<div class="bg-mantle border border-surface1 rounded-lg overflow-hidden">
<!-- Header Section -->
<div class="bg-surface0 border-b border-surface1 px-6 py-8">
@@ -25,13 +31,15 @@ templ SeasonDetails(season *db.Season) {
</span>
</div>
<div class="flex gap-2">
<a
href={ templ.SafeURL("/seasons/" + season.ShortName + "/edit") }
class="rounded-lg px-4 py-2 hover:cursor-pointer text-center
bg-blue hover:bg-blue/75 text-mantle transition"
>
Edit
</a>
if canEditSeason {
<a
href={ templ.SafeURL("/seasons/" + season.ShortName + "/edit") }
class="rounded-lg px-4 py-2 hover:cursor-pointer text-center
bg-blue hover:bg-blue/75 text-mantle transition"
>
Edit
</a>
}
<a
href="/seasons"
class="rounded-lg px-4 py-2 hover:cursor-pointer text-center

View File

@@ -7,6 +7,8 @@ import "git.haelnorr.com/h/oslstats/internal/view/sort"
import "fmt"
import "time"
import "github.com/uptrace/bun"
import "git.haelnorr.com/h/oslstats/internal/contexts"
import "git.haelnorr.com/h/oslstats/internal/permissions"
templ ListPage(seasons *db.List[db.Season]) {
@baseview.Layout("Seasons") {
@@ -18,6 +20,8 @@ templ ListPage(seasons *db.List[db.Season]) {
templ SeasonsList(seasons *db.List[db.Season]) {
{{
permCache := contexts.Permissions(ctx)
canAddSeason := permCache.HasPermission(permissions.SeasonsCreate)
sortOpts := []db.OrderOpts{
{
Order: bun.OrderDesc,
@@ -59,11 +63,13 @@ templ SeasonsList(seasons *db.List[db.Season]) {
<div class="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4 mb-6 px-4">
<div class="flex gap-4 items-center">
<span class="text-3xl font-bold">Seasons</span>
<a
href="/seasons/new"
class="rounded-lg px-2 py-1 hover:cursor-pointer text-center text-sm
bg-green hover:bg-green/75 text-mantle transition"
>Add season</a>
if canAddSeason {
<a
href="/seasons/new"
class="rounded-lg px-2 py-1 hover:cursor-pointer text-center text-sm
bg-green hover:bg-green/75 text-mantle transition"
>Add season</a>
}
</div>
@sort.Dropdown(seasons.PageOpts, sortOpts)
</div>