From edaebe9e4ab5434edded5b1311ecdcff68e8b815 Mon Sep 17 00:00:00 2001 From: akastijn Date: Sun, 2 Nov 2025 22:46:26 +0100 Subject: [PATCH] Fix `getTeamMembers` query to scope permissions to the global server --- .../altitudeweb/mappers/StaffPtToStaffPlaytimeMapper.java | 3 ++- .../com/alttd/altitudeweb/services/site/StaffPtService.java | 4 ++-- .../src/app/pages/head-mod/staff-pt/staff-pt.component.ts | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/com/alttd/altitudeweb/mappers/StaffPtToStaffPlaytimeMapper.java b/backend/src/main/java/com/alttd/altitudeweb/mappers/StaffPtToStaffPlaytimeMapper.java index edbff52..65ed25e 100644 --- a/backend/src/main/java/com/alttd/altitudeweb/mappers/StaffPtToStaffPlaytimeMapper.java +++ b/backend/src/main/java/com/alttd/altitudeweb/mappers/StaffPtToStaffPlaytimeMapper.java @@ -7,6 +7,7 @@ import org.springframework.stereotype.Service; import java.time.Instant; import java.time.OffsetDateTime; +import java.time.ZoneOffset; import java.util.*; import java.util.concurrent.TimeUnit; @@ -27,7 +28,7 @@ public final class StaffPtToStaffPlaytimeMapper { .findFirst() .orElse(entry.getKey().toString()) ); - dto.setLastPlayed(OffsetDateTime.from(Instant.ofEpochMilli(lastPlayedMillis))); + dto.setLastPlayed(OffsetDateTime.ofInstant(Instant.ofEpochMilli(lastPlayedMillis), ZoneOffset.UTC)); dto.setPlaytime((int) TimeUnit.MILLISECONDS.toMinutes(entry.getValue().totalPlaytime())); results.add(dto); } diff --git a/backend/src/main/java/com/alttd/altitudeweb/services/site/StaffPtService.java b/backend/src/main/java/com/alttd/altitudeweb/services/site/StaffPtService.java index 0c33979..2fe4d61 100644 --- a/backend/src/main/java/com/alttd/altitudeweb/services/site/StaffPtService.java +++ b/backend/src/main/java/com/alttd/altitudeweb/services/site/StaffPtService.java @@ -23,7 +23,7 @@ import java.util.stream.Collectors; @Service @RequiredArgsConstructor public class StaffPtService { - private final static String STAFF_GROUPS = "group.admin, group.developer, group.headmod, group.manager, group.moderator, group.owner, group.trainee"; + private final static String STAFF_GROUPS = "'group.admin', 'group.developer', 'group.headmod', 'group.manager', 'group.moderator', 'group.owner', 'group.trainee'"; private final StaffPtToStaffPlaytimeMapper staffPtToStaffPlaytimeMapper; public Optional> getStaffPlaytime(Instant from, Instant to) { @@ -49,7 +49,7 @@ public class StaffPtService { .runQuery(sqlSession -> { String staffUUIDs = staffMembers.stream() .map(Player::uuid) - .map(String::valueOf) + .map(uuid -> "'" + uuid + "'") .collect(Collectors.joining(",")); log.debug("Loading staff playtime for group"); try { diff --git a/frontend/src/app/pages/head-mod/staff-pt/staff-pt.component.ts b/frontend/src/app/pages/head-mod/staff-pt/staff-pt.component.ts index d3bf733..97cb66a 100644 --- a/frontend/src/app/pages/head-mod/staff-pt/staff-pt.component.ts +++ b/frontend/src/app/pages/head-mod/staff-pt/staff-pt.component.ts @@ -18,7 +18,7 @@ export class StaffPtComponent implements OnInit { staffPt = signal([]); - weekStart = signal(this.getStartOfWeek(new Date())); + weekStart = signal(this.getStartOfWeek(new Date('2024-01-01'))); weekEnd = computed(() => this.getEndOfWeek(this.weekStart())); todayStart = signal(this.startOfDay(new Date()));