import { ProjectRole, Role } from '~/lib' const rolePermissions = { // general role permissions /** todo: enable wildcard permission * limited permission due to unexpected behaviour in shared base if opened in same window */ [Role.Super]: '*', [Role.Admin]: {}, [Role.Guest]: {}, [Role.User]: { projectCreate: true, projectActions: true, projectSettings: true, }, // Project role permissions [ProjectRole.Creator]: '*', [ProjectRole.Owner]: '*', [ProjectRole.Editor]: { smartSheet: true, xcDatatableEditable: true, column: true, tableAttachment: true, tableRowUpdate: true, dataInsert: true, rowComments: true, gridViewOptions: true, sortSync: true, fieldsSync: true, gridColUpdate: true, filterSync: true, csvImport: true, apiDocs: true, projectSettings: true, newUser: false, }, [ProjectRole.Commenter]: { smartSheet: true, column: true, rowComments: true, projectSettings: true, }, [ProjectRole.Viewer]: { smartSheet: true, column: true, projectSettings: true, }, } as const type RolePermissions = Omit type GetKeys = T extends Record ? keyof T : never export type Permission = RolePermissions[K] extends Record ? GetKeys : never export default rolePermissions