UNPKG

@pulzar/core

Version:

Next-generation Node.js framework for ultra-fast web applications with zero-reflection DI, GraphQL, WebSockets, events, and edge runtime support

78 lines 2.91 kB
/** * Build auth context with role and permission helpers */ export function buildAuthContext(input) { const { user, token, session, payload, isAuthenticated } = input; return { user, token, session, isAuthenticated, hasRole: (role) => { if (payload?.roles) { return payload.roles.includes(role); } if (session?.data.roles && Array.isArray(session.data.roles)) { return session.data.roles.includes(role); } return user.roles.includes(role); }, hasPermission: (permission) => { if (payload?.permissions) { return payload.permissions.includes(permission); } if (session?.data.permissions && Array.isArray(session.data.permissions)) { return session.data.permissions.includes(permission); } return user.permissions.includes(permission); }, hasAnyRole: (roles) => { return roles.some((role) => { if (payload?.roles) { return payload.roles.includes(role); } if (session?.data.roles && Array.isArray(session.data.roles)) { return session.data.roles.includes(role); } return user.roles.includes(role); }); }, hasAllRoles: (roles) => { return roles.every((role) => { if (payload?.roles) { return payload.roles.includes(role); } if (session?.data.roles && Array.isArray(session.data.roles)) { return session.data.roles.includes(role); } return user.roles.includes(role); }); }, hasAnyPermission: (permissions) => { return permissions.some((perm) => { if (payload?.permissions) { return payload.permissions.includes(perm); } if (session?.data.permissions && Array.isArray(session.data.permissions)) { return session.data.permissions.includes(perm); } return user.permissions.includes(perm); }); }, hasAllPermissions: (permissions) => { return permissions.every((perm) => { if (payload?.permissions) { return payload.permissions.includes(perm); } if (session?.data.permissions && Array.isArray(session.data.permissions)) { return session.data.permissions.includes(perm); } return user.permissions.includes(perm); }); }, }; } //# sourceMappingURL=auth-context.js.map