mirror of
https://github.com/sasjs/server.git
synced 2025-12-10 19:34:34 +00:00
BREAKING CHANGE: remove auto incremental ids from user, group and permissions and add a virtual uid property that returns string value of documents object id
33 lines
897 B
TypeScript
33 lines
897 B
TypeScript
import { Request } from 'express'
|
|
import { getPath } from './getAuthorizedRoutes'
|
|
import Group, { PUBLIC_GROUP_NAME } from '../model/Group'
|
|
import Permission from '../model/Permission'
|
|
import { PermissionSettingForRoute } from '../controllers'
|
|
import { RequestUser } from '../types'
|
|
|
|
export const isPublicRoute = async (req: Request): Promise<boolean> => {
|
|
const group = await Group.findOne({ name: PUBLIC_GROUP_NAME })
|
|
if (group) {
|
|
const path = getPath(req)
|
|
|
|
const groupPermission = await Permission.findOne({
|
|
path,
|
|
group: group?._id
|
|
})
|
|
if (groupPermission?.setting === PermissionSettingForRoute.grant)
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
export const publicUser: RequestUser = {
|
|
userId: 'public_user_id',
|
|
clientId: 'public_app',
|
|
username: 'publicUser',
|
|
displayName: 'Public User',
|
|
isAdmin: false,
|
|
isActive: true,
|
|
needsToUpdatePassword: false
|
|
}
|