@upv/ushi-shared
Version:
Shared DTOs, types, and utilities for the USHI platform (LMS, Trials, Social, Wallet).
43 lines (42 loc) • 1.57 kB
TypeScript
/**
* RoleDomain
*
* Logical domain scopes used in role-based access control across the USHI platform.
* Enables contextual permission separation (e.g., global vs LMS vs trial-specific).
*/
export declare enum RoleDomain {
GLOBAL = "global",// System-wide or infrastructure roles
LMS = "lms",// Learning Management System roles
SOCIAL = "social",// Social community platform roles
TRIAL = "trial"
}
/**
* PersonRole
*
* Enumerates all assignable user roles across different domains.
* Used in both backend authorization logic and frontend feature gating.
*/
export declare enum PersonRole {
ADMIN = "admin",// Platform or domain admin
STUDENT = "student",// LMS learner
CREATOR = "creator",// Content author or LMS contributor
COACH = "coach",// Mentor or instructor
PARTICIPANT = "participant",// Clinical trial participant
MODERATOR = "moderator",// Social platform moderator
RESEARCHER = "researcher",// Investigator or trial team member
ORGANIZER = "organizer",// Trial or study coordinator
SPONSOR = "sponsor"
}
/**
* PersonStatus
*
* Represents the state of a user account throughout its lifecycle.
* Used for gating login, activation, and administrative control.
*/
export declare enum PersonStatus {
PENDING = "pending",// Awaiting email verification or invite acceptance
VALIDATED = "validated",// Email verified, ready for activation
ACTIVE = "active",// Fully enabled account
SUSPENDED = "suspended",// Temporarily blocked (e.g., violations, manual)
DELETED = "deleted"
}