@@ -4,38 +4,42 @@ import { Resource } from "@/features/resources";
44import type { RoutableResource } from "@/features/resources/types" ;
55import type { RecordIntersection } from "@/types/helpers" ;
66
7+ const SOLVRO_ADMINS_ONLY = [ "solvro_admin" ] as const ;
8+ const ADMINS_ONLY = [ "admin" , ...SOLVRO_ADMINS_ONLY ] as const ;
9+ const ANY_AUTHENTICATED_ROLE = [ "user" , ...ADMINS_ONLY ] as const ;
10+
711export const ROUTE_PERMISSIONS = {
8- "/" : [ "user" , "admin" ] ,
9- "/review" : [ "user" , "admin" ] ,
10- [ `/${ Resource . AboutUs } ` ] : [ "user" , "admin" ] ,
11- [ `/${ Resource . AboutUsLinks } ` ] : [ "user" , "admin" ] ,
12- [ `/${ Resource . AcademicSemesters } ` ] : [ "user" , "admin" ] ,
13- [ `/${ Resource . Aeds } ` ] : [ "user" , "admin" ] ,
14- [ `/${ Resource . Banners } ` ] : [ "user" , "admin" ] ,
15- [ `/${ Resource . BicycleShowers } ` ] : [ "user" , "admin" ] ,
16- [ `/${ Resource . Buildings } ` ] : [ "user" , "admin" ] ,
17- [ `/${ Resource . CalendarEvents } ` ] : [ "user" , "admin" ] ,
18- [ `/${ Resource . Campuses } ` ] : [ "user" , "admin" ] ,
19- [ `/${ Resource . Contributors } ` ] : [ "user" , "admin" ] ,
20- [ `/${ Resource . DaySwaps } ` ] : [ "user" , "admin" ] ,
21- [ `/${ Resource . Departments } ` ] : [ "user" , "admin" ] ,
22- [ `/${ Resource . FoodSpots } ` ] : [ "user" , "admin" ] ,
23- [ `/${ Resource . GuideArticles } ` ] : [ "user" , "admin" ] ,
24- [ `/${ Resource . Holidays } ` ] : [ "user" , "admin" ] ,
25- [ `/${ Resource . Libraries } ` ] : [ "user" , "admin" ] ,
26- [ `/${ Resource . Map } ` ] : [ "user" , "admin" ] ,
27- [ `/${ Resource . Milestones } ` ] : [ "user" , "admin" ] ,
28- [ `/${ Resource . MobileConfig } ` ] : [ "user" , "admin" ] ,
29- [ `/${ Resource . Notifications } ` ] : [ "user" , "admin" ] ,
30- [ `/${ Resource . NotificationTopics } ` ] : [ "user" , "admin" ] ,
31- [ `/${ Resource . PinkBoxes } ` ] : [ "user" , "admin" ] ,
32- [ `/${ Resource . PolinkaStations } ` ] : [ "user" , "admin" ] ,
33- [ `/${ Resource . Roles } ` ] : [ "user" , "admin" ] ,
34- [ `/${ Resource . SksOpeningHours } ` ] : [ "user" , "admin" ] ,
35- [ `/${ Resource . StudentOrganizations } ` ] : [ "user" , "admin" ] ,
36- [ `/${ Resource . Versions } ` ] : [ "user" , "admin" ] ,
12+ "/" : ANY_AUTHENTICATED_ROLE ,
13+ "/review" : SOLVRO_ADMINS_ONLY ,
14+ [ `/${ Resource . AboutUs } ` ] : ANY_AUTHENTICATED_ROLE ,
15+ [ `/${ Resource . AboutUsLinks } ` ] : ANY_AUTHENTICATED_ROLE ,
16+ [ `/${ Resource . AcademicSemesters } ` ] : ANY_AUTHENTICATED_ROLE ,
17+ [ `/${ Resource . Aeds } ` ] : ANY_AUTHENTICATED_ROLE ,
18+ [ `/${ Resource . Banners } ` ] : ANY_AUTHENTICATED_ROLE ,
19+ [ `/${ Resource . BicycleShowers } ` ] : ANY_AUTHENTICATED_ROLE ,
20+ [ `/${ Resource . Buildings } ` ] : ANY_AUTHENTICATED_ROLE ,
21+ [ `/${ Resource . CalendarEvents } ` ] : ANY_AUTHENTICATED_ROLE ,
22+ [ `/${ Resource . Campuses } ` ] : ANY_AUTHENTICATED_ROLE ,
23+ [ `/${ Resource . Contributors } ` ] : ANY_AUTHENTICATED_ROLE ,
24+ [ `/${ Resource . DaySwaps } ` ] : ANY_AUTHENTICATED_ROLE ,
25+ [ `/${ Resource . Departments } ` ] : ANY_AUTHENTICATED_ROLE ,
26+ [ `/${ Resource . FoodSpots } ` ] : ANY_AUTHENTICATED_ROLE ,
27+ [ `/${ Resource . GuideArticles } ` ] : ANY_AUTHENTICATED_ROLE ,
28+ [ `/${ Resource . Holidays } ` ] : ANY_AUTHENTICATED_ROLE ,
29+ [ `/${ Resource . Libraries } ` ] : ANY_AUTHENTICATED_ROLE ,
30+ [ `/${ Resource . Map } ` ] : ANY_AUTHENTICATED_ROLE ,
31+ [ `/${ Resource . Milestones } ` ] : ANY_AUTHENTICATED_ROLE ,
32+ [ `/${ Resource . MobileConfig } ` ] : ANY_AUTHENTICATED_ROLE ,
33+ [ `/${ Resource . Notifications } ` ] : ANY_AUTHENTICATED_ROLE ,
34+ [ `/${ Resource . NotificationTopics } ` ] : ANY_AUTHENTICATED_ROLE ,
35+ [ `/${ Resource . PinkBoxes } ` ] : ANY_AUTHENTICATED_ROLE ,
36+ [ `/${ Resource . PolinkaStations } ` ] : ANY_AUTHENTICATED_ROLE ,
37+ [ `/${ Resource . Roles } ` ] : ANY_AUTHENTICATED_ROLE ,
38+ [ `/${ Resource . SksOpeningHours } ` ] : ANY_AUTHENTICATED_ROLE ,
39+ [ `/${ Resource . StudentOrganizations } ` ] : ANY_AUTHENTICATED_ROLE ,
40+ [ `/${ Resource . Versions } ` ] : ANY_AUTHENTICATED_ROLE ,
3741} satisfies RecordIntersection <
3842 `/${RoutableResource } `,
3943 Route ,
40- string [ ] | undefined
44+ readonly string [ ] | undefined
4145> ;
0 commit comments