45 lines
946 B
TypeScript
45 lines
946 B
TypeScript
import { PERMISSIONS } from '@/constants/permissions';
|
|
import { ROUTES } from '@/utils/routes';
|
|
|
|
export type AppRoute = {
|
|
path: string;
|
|
permission?: string;
|
|
match?: 'exact' | 'prefix';
|
|
};
|
|
|
|
export const appRoutes: AppRoute[] = [
|
|
{
|
|
path: ROUTES.ROLES,
|
|
permission: PERMISSIONS.ROLE.READ,
|
|
},
|
|
{
|
|
path: ROUTES.USERS,
|
|
permission: PERMISSIONS.USER.READ,
|
|
},
|
|
{
|
|
path: ROUTES.CLIENTS,
|
|
permission: PERMISSIONS.CLIENT.READ,
|
|
},
|
|
{
|
|
path: ROUTES.PLANS,
|
|
permission: PERMISSIONS.PLAN.READ,
|
|
},
|
|
{
|
|
path: ROUTES.UPLOAD,
|
|
permission: PERMISSIONS.VIDEO.UPLOAD,
|
|
},
|
|
{
|
|
path: ROUTES.TICKET,
|
|
permission: PERMISSIONS.TICKET.READ,
|
|
match: 'prefix',
|
|
},
|
|
];
|
|
|
|
export function getRoutePermission(pathname: string) {
|
|
return appRoutes.find((route) =>
|
|
route.match === 'prefix'
|
|
? pathname === route.path || pathname.startsWith(`${route.path}/`)
|
|
: route.path === pathname,
|
|
)?.permission;
|
|
}
|