Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import { IUserAggregate } from '@INTERFACE/user/domain'; const permissionLevel: { [key in IUserAggregate.Permission]: number } = { Admin: 0, Manager: 1, Normal: 2, }; export const UserAggregate: IUserAggregate = { get(args) { const now = new Date(); const { username, email, role = 'Normal', id, created_at = now, updated_at = now, } = args; return { id, created_at, updated_at, username, email, role }; }, getPublic(args) { const { id, email, username, role } = args; return { id, email, username, role }; }, setRole(agg, role) { (agg as any).role = role; return agg; }, checkPermission({ user, target }) { const ulevel = permissionLevel[user]; const tlevel = permissionLevel[target]; return ulevel <= tlevel; }, }; |