mirror of
https://github.com/docmost/docmost.git
synced 2026-05-20 00:14:10 +08:00
90ae750d48
* space UI * space management * space permissions * other fixes
24 lines
656 B
TypeScript
24 lines
656 B
TypeScript
import { UserSpaceRole } from '@docmost/db/repos/space/types';
|
|
import { SpaceRole } from '../../../helpers/types/permission';
|
|
|
|
export function findHighestUserSpaceRole(userSpaceRoles: UserSpaceRole[]) {
|
|
if (!userSpaceRoles) {
|
|
return undefined;
|
|
}
|
|
|
|
const roleOrder: { [key in SpaceRole]: number } = {
|
|
[SpaceRole.ADMIN]: 3,
|
|
[SpaceRole.WRITER]: 2,
|
|
[SpaceRole.READER]: 1,
|
|
};
|
|
let highestRole: string;
|
|
|
|
for (const userSpaceRole of userSpaceRoles) {
|
|
const currentRole = userSpaceRole.role;
|
|
if (!highestRole || roleOrder[currentRole] > roleOrder[highestRole]) {
|
|
highestRole = currentRole;
|
|
}
|
|
}
|
|
return highestRole;
|
|
}
|