ulms-contracts
v6.4.0
Published
This package contains TypeScript contracts and permissions for the ULMS (University Learning Management System) project.
Downloads
50
Readme
ULMS Contracts
This package contains TypeScript contracts and permissions for the ULMS (University Learning Management System) project.
Installation
npm install ulms-contractsUsage
Permissions
import { PERMS, ROLE_MASKS, hasAll, hasAny, combine } from 'ulms-contracts';
// Check if a user has specific permissions
const userMask = ROLE_MASKS.USER;
const canReadUsers = hasAll(userMask, PERMS.USER_READ);
const canDoAnything = hasAny(userMask, PERMS.USER_READ | PERMS.USER_CREATE);
// Combine multiple permissions
const customMask = combine(PERMS.USER_READ, PERMS.COURSE_READ);Protocol Buffers
// Import proto files for gRPC services
import authProto from 'ulms-contracts/protos/auth.proto';
import userProto from 'ulms-contracts/protos/user.proto';
// Or using require
const authProto = require('ulms-contracts/protos/auth.proto');
const userProto = require('ulms-contracts/protos/user.proto');Available Permissions
USER_READ,USER_CREATE,USER_UPDATE,USER_DELETEAPPLICATION_READ,APPLICATION_CREATE,APPLICATION_UPDATE,APPLICATION_DELETECOURSE_READ,COURSE_CREATE,COURSE_UPDATE,COURSE_DELETE
Role Masks
ADMIN: Full permissions for all operationsSTAFF: Read permissions for users, read/update for courses and applicationsUSER: Create, read, and update permissions for applications only
Utility Functions
hasAll(mask, required): Check if mask contains all required permissionshasAny(mask, required): Check if mask contains any of the required permissionscombine(...flags): Combine multiple permission flags
Building
npm run buildLicense
MIT
