diff --git a/package.json b/package.json index 38bde18..032f60d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Shared Kafka/gRPC contracts and common enums between MonadIAM services", "author": "Daniil Egorov (https://github.com/Lambdius)", "license": "UNLICENSED", - "version": "2.0.18", + "version": "2.0.19", "types": "dist/index.d.ts", "main": "dist/index.js", "exports": { diff --git a/src/datasets/access-control/bootstrap.ts b/src/datasets/access-control/bootstrap.ts index 35acb1f..5d344bc 100644 --- a/src/datasets/access-control/bootstrap.ts +++ b/src/datasets/access-control/bootstrap.ts @@ -113,6 +113,70 @@ export const ADMIN_PERMISSION_CODES: string[] = [ PermissionCode.TEAM_ARCHIVE, PermissionCode.TEAM_RESTORE, PermissionCode.TEAM_PURGE, + + PermissionCode.EMPLOYEE_READ_COMMON, + PermissionCode.EMPLOYEE_READ_ABSOLUTE, + PermissionCode.EMPLOYEE_CREATE, + PermissionCode.EMPLOYEE_UPDATE, + PermissionCode.EMPLOYEE_ARCHIVE, + PermissionCode.EMPLOYEE_RESTORE, + PermissionCode.EMPLOYEE_LINK_ACCOUNT, + PermissionCode.EMPLOYEE_SET_HRBP, + PermissionCode.EMPLOYMENT_READ_COMMON, + PermissionCode.EMPLOYMENT_READ_ABSOLUTE, + PermissionCode.ABSENCE_READ_COMMON, + PermissionCode.ABSENCE_READ_ABSOLUTE, + PermissionCode.HR_REQUEST_READ_COMMON, + PermissionCode.HR_REQUEST_READ_ABSOLUTE, + PermissionCode.HR_REQUEST_CREATE, + PermissionCode.HR_REQUEST_UPDATE, + PermissionCode.HR_REQUEST_SUBMIT, + PermissionCode.HR_REQUEST_WITHDRAW, + PermissionCode.HR_APPROVAL_STEP_READ_COMMON, + PermissionCode.HR_APPROVAL_STEP_READ_ABSOLUTE, + PermissionCode.HR_APPROVAL_STEP_APPROVE, + PermissionCode.HR_APPROVAL_STEP_REJECT, + PermissionCode.HR_APPROVAL_STEP_RETURN_FOR_REVISION, + PermissionCode.HR_APPROVAL_STEP_REASSIGN, + PermissionCode.HR_APPROVAL_DECISION_READ_COMMON, + PermissionCode.HR_APPROVAL_DECISION_READ_ABSOLUTE, + PermissionCode.LEAVE_LEDGER_ENTRY_READ_COMMON, + PermissionCode.LEAVE_LEDGER_ENTRY_READ_ABSOLUTE, + PermissionCode.LEAVE_POLICY_READ_COMMON, + PermissionCode.LEAVE_POLICY_READ_ABSOLUTE, + PermissionCode.LEAVE_POLICY_CREATE, + PermissionCode.LEAVE_POLICY_CREATE_REVISION, + PermissionCode.LEAVE_POLICY_ARCHIVE, + PermissionCode.LEAVE_POLICY_RESTORE, + PermissionCode.LEAVE_POLICY_PURGE, + PermissionCode.POSITION_READ_COMMON, + PermissionCode.POSITION_READ_ABSOLUTE, + PermissionCode.POSITION_CREATE, + PermissionCode.POSITION_UPDATE, + PermissionCode.POSITION_ARCHIVE, + PermissionCode.POSITION_RESTORE, + PermissionCode.POSITION_PURGE, + PermissionCode.POSITION_ASSIGNMENT_READ_COMMON, + PermissionCode.POSITION_ASSIGNMENT_READ_ABSOLUTE, + PermissionCode.WORK_CALENDAR_READ_COMMON, + PermissionCode.WORK_CALENDAR_READ_ABSOLUTE, + PermissionCode.WORK_CALENDAR_CREATE, + PermissionCode.WORK_CALENDAR_UPDATE, + PermissionCode.WORK_CALENDAR_ARCHIVE, + PermissionCode.WORK_CALENDAR_RESTORE, + PermissionCode.WORK_CALENDAR_PURGE, + PermissionCode.WORK_CALENDAR_EXCEPTION_READ_COMMON, + PermissionCode.WORK_CALENDAR_EXCEPTION_READ_ABSOLUTE, + PermissionCode.WORK_CALENDAR_EXCEPTION_CREATE, + PermissionCode.WORK_CALENDAR_EXCEPTION_UPDATE, + PermissionCode.WORK_CALENDAR_EXCEPTION_PURGE, + PermissionCode.WORK_SCHEDULE_READ_COMMON, + PermissionCode.WORK_SCHEDULE_READ_ABSOLUTE, + PermissionCode.WORK_SCHEDULE_CREATE, + PermissionCode.WORK_SCHEDULE_CREATE_REVISION, + PermissionCode.WORK_SCHEDULE_ARCHIVE, + PermissionCode.WORK_SCHEDULE_RESTORE, + PermissionCode.WORK_SCHEDULE_PURGE, ]; export const PROJECT_USER_PERMISSION_CODES: string[] = [ diff --git a/src/datasets/access-control/permission.dataset.ts b/src/datasets/access-control/permission.dataset.ts index bca6e12..9d3552f 100644 --- a/src/datasets/access-control/permission.dataset.ts +++ b/src/datasets/access-control/permission.dataset.ts @@ -1049,6 +1049,415 @@ const dataset = [ ), + // --------------------------------------------------------------------------- + // Human Resources + // --------------------------------------------------------------------------- + + // Employee + entry( + "00000004-0001-4000-8000-500000000001", + PermissionCode.EMPLOYEE_READ_COMMON, + "Read Common Employees", + "View all employees within an organization realm.", + ), + entry( + "00000004-0001-4000-8000-500000000002", + PermissionCode.EMPLOYEE_READ_ABSOLUTE, + "Read Absolute Employees", + "View all employees.", + ), + entry( + "00000004-0001-4000-8000-500000000003", + PermissionCode.EMPLOYEE_CREATE, + "Create Employee", + "Create an employee.", + ), + entry( + "00000004-0001-4000-8000-500000000004", + PermissionCode.EMPLOYEE_UPDATE, + "Update Employee", + "Modify employee metadata.", + ), + entry( + "00000004-0001-4000-8000-500000000005", + PermissionCode.EMPLOYEE_ARCHIVE, + "Archive Employee", + "Archive an employee.", + ), + entry( + "00000004-0001-4000-8000-500000000006", + PermissionCode.EMPLOYEE_RESTORE, + "Restore Employee", + "Restore an archived employee.", + ), + entry( + "00000004-0001-4000-8000-500000000007", + PermissionCode.EMPLOYEE_LINK_ACCOUNT, + "Link Account to Employee", + "Link an account to an employee.", + ), + entry( + "00000004-0001-4000-8000-500000000008", + PermissionCode.EMPLOYEE_SET_HRBP, + "Set Employee HRBP", + "Assign or replace an employee's HRBP.", + ), + + // Employment + entry( + "00000004-0002-4000-8000-500000000001", + PermissionCode.EMPLOYMENT_READ_COMMON, + "Read Common Employments", + "View all employments within an organization realm.", + ), + entry( + "00000004-0002-4000-8000-500000000002", + PermissionCode.EMPLOYMENT_READ_ABSOLUTE, + "Read Absolute Employments", + "View all employments.", + ), + + // Absence + entry( + "00000004-0003-4000-8000-500000000001", + PermissionCode.ABSENCE_READ_COMMON, + "Read Common Absences", + "View all absences within an organization realm.", + ), + entry( + "00000004-0003-4000-8000-500000000002", + PermissionCode.ABSENCE_READ_ABSOLUTE, + "Read Absolute Absences", + "View all absences.", + ), + + // HRRequest + entry( + "00000004-0004-4000-8000-500000000001", + PermissionCode.HR_REQUEST_READ_COMMON, + "Read Common HR Requests", + "View all HR requests within an organization realm.", + ), + entry( + "00000004-0004-4000-8000-500000000002", + PermissionCode.HR_REQUEST_READ_ABSOLUTE, + "Read Absolute HR Requests", + "View all HR requests.", + ), + entry( + "00000004-0004-4000-8000-500000000003", + PermissionCode.HR_REQUEST_CREATE, + "Create HR Request", + "Create an HR request.", + ), + entry( + "00000004-0004-4000-8000-500000000004", + PermissionCode.HR_REQUEST_UPDATE, + "Update HR Request", + "Modify an HR request.", + ), + entry( + "00000004-0004-4000-8000-500000000005", + PermissionCode.HR_REQUEST_SUBMIT, + "Submit HR Request", + "Submit an HR request for approval.", + ), + entry( + "00000004-0004-4000-8000-500000000006", + PermissionCode.HR_REQUEST_WITHDRAW, + "Withdraw HR Request", + "Withdraw an HR request.", + ), + + // HRApprovalStep + entry( + "00000004-0005-4000-8000-500000000001", + PermissionCode.HR_APPROVAL_STEP_READ_COMMON, + "Read Common HR Approval Steps", + "View all HR approval steps within an organization realm.", + ), + entry( + "00000004-0005-4000-8000-500000000002", + PermissionCode.HR_APPROVAL_STEP_READ_ABSOLUTE, + "Read Absolute HR Approval Steps", + "View all HR approval steps.", + ), + entry( + "00000004-0005-4000-8000-500000000003", + PermissionCode.HR_APPROVAL_STEP_APPROVE, + "Approve HR Approval Step", + "Approve an HR approval step.", + ), + entry( + "00000004-0005-4000-8000-500000000004", + PermissionCode.HR_APPROVAL_STEP_REJECT, + "Reject HR Approval Step", + "Reject an HR approval step.", + ), + entry( + "00000004-0005-4000-8000-500000000005", + PermissionCode.HR_APPROVAL_STEP_RETURN_FOR_REVISION, + "Return HR Approval Step for Revision", + "Return an HR request for revision.", + ), + entry( + "00000004-0005-4000-8000-500000000006", + PermissionCode.HR_APPROVAL_STEP_REASSIGN, + "Reassign HR Approval Step", + "Reassign an HR approval step.", + ), + + // HRApprovalDecision + entry( + "00000004-0006-4000-8000-500000000001", + PermissionCode.HR_APPROVAL_DECISION_READ_COMMON, + "Read Common HR Approval Decisions", + "View all HR approval decisions within an organization realm.", + ), + entry( + "00000004-0006-4000-8000-500000000002", + PermissionCode.HR_APPROVAL_DECISION_READ_ABSOLUTE, + "Read Absolute HR Approval Decisions", + "View all HR approval decisions.", + ), + + // LeaveLedgerEntry + entry( + "00000004-0007-4000-8000-500000000001", + PermissionCode.LEAVE_LEDGER_ENTRY_READ_COMMON, + "Read Common Leave Ledger Entries", + "View all leave ledger entries within an organization realm.", + ), + entry( + "00000004-0007-4000-8000-500000000002", + PermissionCode.LEAVE_LEDGER_ENTRY_READ_ABSOLUTE, + "Read Absolute Leave Ledger Entries", + "View all leave ledger entries.", + ), + + // LeavePolicy + entry( + "00000004-0008-4000-8000-500000000001", + PermissionCode.LEAVE_POLICY_READ_COMMON, + "Read Common Leave Policies", + "View all leave policies within an organization realm.", + ), + entry( + "00000004-0008-4000-8000-500000000002", + PermissionCode.LEAVE_POLICY_READ_ABSOLUTE, + "Read Absolute Leave Policies", + "View all leave policies.", + ), + entry( + "00000004-0008-4000-8000-500000000003", + PermissionCode.LEAVE_POLICY_CREATE, + "Create Leave Policy", + "Create a leave policy.", + ), + entry( + "00000004-0008-4000-8000-500000000004", + PermissionCode.LEAVE_POLICY_CREATE_REVISION, + "Create Leave Policy Revision", + "Create a revision of a leave policy.", + ), + entry( + "00000004-0008-4000-8000-500000000005", + PermissionCode.LEAVE_POLICY_ARCHIVE, + "Archive Leave Policy", + "Archive a leave policy.", + ), + entry( + "00000004-0008-4000-8000-500000000006", + PermissionCode.LEAVE_POLICY_RESTORE, + "Restore Leave Policy", + "Restore an archived leave policy.", + ), + entry( + "00000004-0008-4000-8000-500000000007", + PermissionCode.LEAVE_POLICY_PURGE, + "Purge Leave Policy", + "Permanently delete an archived leave policy.", + ), + + // Position + entry( + "00000004-0009-4000-8000-500000000001", + PermissionCode.POSITION_READ_COMMON, + "Read Common Positions", + "View all positions within an organization realm.", + ), + entry( + "00000004-0009-4000-8000-500000000002", + PermissionCode.POSITION_READ_ABSOLUTE, + "Read Absolute Positions", + "View all positions.", + ), + entry( + "00000004-0009-4000-8000-500000000003", + PermissionCode.POSITION_CREATE, + "Create Position", + "Create a position.", + ), + entry( + "00000004-0009-4000-8000-500000000004", + PermissionCode.POSITION_UPDATE, + "Update Position", + "Modify position metadata.", + ), + entry( + "00000004-0009-4000-8000-500000000005", + PermissionCode.POSITION_ARCHIVE, + "Archive Position", + "Archive a position.", + ), + entry( + "00000004-0009-4000-8000-500000000006", + PermissionCode.POSITION_RESTORE, + "Restore Position", + "Restore an archived position.", + ), + entry( + "00000004-0009-4000-8000-500000000007", + PermissionCode.POSITION_PURGE, + "Purge Position", + "Permanently delete an archived position.", + ), + + // PositionAssignment + entry( + "00000004-0010-4000-8000-500000000001", + PermissionCode.POSITION_ASSIGNMENT_READ_COMMON, + "Read Common Position Assignments", + "View all position assignments within an organization realm.", + ), + entry( + "00000004-0010-4000-8000-500000000002", + PermissionCode.POSITION_ASSIGNMENT_READ_ABSOLUTE, + "Read Absolute Position Assignments", + "View all position assignments.", + ), + + // WorkCalendar + entry( + "00000004-0011-4000-8000-500000000001", + PermissionCode.WORK_CALENDAR_READ_COMMON, + "Read Common Work Calendars", + "View all work calendars within an organization realm.", + ), + entry( + "00000004-0011-4000-8000-500000000002", + PermissionCode.WORK_CALENDAR_READ_ABSOLUTE, + "Read Absolute Work Calendars", + "View all work calendars.", + ), + entry( + "00000004-0011-4000-8000-500000000003", + PermissionCode.WORK_CALENDAR_CREATE, + "Create Work Calendar", + "Create a work calendar.", + ), + entry( + "00000004-0011-4000-8000-500000000004", + PermissionCode.WORK_CALENDAR_UPDATE, + "Update Work Calendar", + "Modify work calendar metadata.", + ), + entry( + "00000004-0011-4000-8000-500000000005", + PermissionCode.WORK_CALENDAR_ARCHIVE, + "Archive Work Calendar", + "Archive a work calendar.", + ), + entry( + "00000004-0011-4000-8000-500000000006", + PermissionCode.WORK_CALENDAR_RESTORE, + "Restore Work Calendar", + "Restore an archived work calendar.", + ), + entry( + "00000004-0011-4000-8000-500000000007", + PermissionCode.WORK_CALENDAR_PURGE, + "Purge Work Calendar", + "Permanently delete an archived work calendar.", + ), + + // WorkCalendarException + entry( + "00000004-0012-4000-8000-500000000001", + PermissionCode.WORK_CALENDAR_EXCEPTION_READ_COMMON, + "Read Common Work Calendar Exceptions", + "View all work calendar exceptions within an organization realm.", + ), + entry( + "00000004-0012-4000-8000-500000000002", + PermissionCode.WORK_CALENDAR_EXCEPTION_READ_ABSOLUTE, + "Read Absolute Work Calendar Exceptions", + "View all work calendar exceptions.", + ), + entry( + "00000004-0012-4000-8000-500000000003", + PermissionCode.WORK_CALENDAR_EXCEPTION_CREATE, + "Create Work Calendar Exception", + "Create a work calendar exception.", + ), + entry( + "00000004-0012-4000-8000-500000000004", + PermissionCode.WORK_CALENDAR_EXCEPTION_UPDATE, + "Update Work Calendar Exception", + "Modify a work calendar exception.", + ), + entry( + "00000004-0012-4000-8000-500000000005", + PermissionCode.WORK_CALENDAR_EXCEPTION_PURGE, + "Purge Work Calendar Exception", + "Permanently delete a work calendar exception.", + ), + + // WorkSchedule + entry( + "00000004-0013-4000-8000-500000000001", + PermissionCode.WORK_SCHEDULE_READ_COMMON, + "Read Common Work Schedules", + "View all work schedules within an organization realm.", + ), + entry( + "00000004-0013-4000-8000-500000000002", + PermissionCode.WORK_SCHEDULE_READ_ABSOLUTE, + "Read Absolute Work Schedules", + "View all work schedules.", + ), + entry( + "00000004-0013-4000-8000-500000000003", + PermissionCode.WORK_SCHEDULE_CREATE, + "Create Work Schedule", + "Create a work schedule.", + ), + entry( + "00000004-0013-4000-8000-500000000004", + PermissionCode.WORK_SCHEDULE_CREATE_REVISION, + "Create Work Schedule Revision", + "Create a revision of a work schedule.", + ), + entry( + "00000004-0013-4000-8000-500000000005", + PermissionCode.WORK_SCHEDULE_ARCHIVE, + "Archive Work Schedule", + "Archive a work schedule.", + ), + entry( + "00000004-0013-4000-8000-500000000006", + PermissionCode.WORK_SCHEDULE_RESTORE, + "Restore Work Schedule", + "Restore an archived work schedule.", + ), + entry( + "00000004-0013-4000-8000-500000000007", + PermissionCode.WORK_SCHEDULE_PURGE, + "Purge Work Schedule", + "Permanently delete an archived work schedule.", + ), + + // --------------------------------------------------------------------------- // Notification // --------------------------------------------------------------------------- diff --git a/src/enums.ts b/src/enums.ts index a4a272d..17b7a6e 100644 --- a/src/enums.ts +++ b/src/enums.ts @@ -450,6 +450,85 @@ export enum PermissionCode { TEAM_PURGE = "team.purge", + // --------------------------------------------------------------------------- + // Human Resources + // --------------------------------------------------------------------------- + + EMPLOYEE_READ_COMMON = "employee.read_common", + EMPLOYEE_READ_ABSOLUTE = "employee.read_absolute", + EMPLOYEE_CREATE = "employee.create", + EMPLOYEE_UPDATE = "employee.update", + EMPLOYEE_ARCHIVE = "employee.archive", + EMPLOYEE_RESTORE = "employee.restore", + EMPLOYEE_LINK_ACCOUNT = "employee.link_account", + EMPLOYEE_SET_HRBP = "employee.set_hrbp", + + EMPLOYMENT_READ_COMMON = "employment.read_common", + EMPLOYMENT_READ_ABSOLUTE = "employment.read_absolute", + + ABSENCE_READ_COMMON = "absence.read_common", + ABSENCE_READ_ABSOLUTE = "absence.read_absolute", + + HR_REQUEST_READ_COMMON = "hr_request.read_common", + HR_REQUEST_READ_ABSOLUTE = "hr_request.read_absolute", + HR_REQUEST_CREATE = "hr_request.create", + HR_REQUEST_UPDATE = "hr_request.update", + HR_REQUEST_SUBMIT = "hr_request.submit", + HR_REQUEST_WITHDRAW = "hr_request.withdraw", + + HR_APPROVAL_STEP_READ_COMMON = "hr_approval_step.read_common", + HR_APPROVAL_STEP_READ_ABSOLUTE = "hr_approval_step.read_absolute", + HR_APPROVAL_STEP_APPROVE = "hr_approval_step.approve", + HR_APPROVAL_STEP_REJECT = "hr_approval_step.reject", + HR_APPROVAL_STEP_RETURN_FOR_REVISION = "hr_approval_step.return_for_revision", + HR_APPROVAL_STEP_REASSIGN = "hr_approval_step.reassign", + HR_APPROVAL_DECISION_READ_COMMON = "hr_approval_decision.read_common", + HR_APPROVAL_DECISION_READ_ABSOLUTE = "hr_approval_decision.read_absolute", + + LEAVE_LEDGER_ENTRY_READ_COMMON = "leave_ledger_entry.read_common", + LEAVE_LEDGER_ENTRY_READ_ABSOLUTE = "leave_ledger_entry.read_absolute", + + LEAVE_POLICY_READ_COMMON = "leave_policy.read_common", + LEAVE_POLICY_READ_ABSOLUTE = "leave_policy.read_absolute", + LEAVE_POLICY_CREATE = "leave_policy.create", + LEAVE_POLICY_CREATE_REVISION = "leave_policy.create_revision", + LEAVE_POLICY_ARCHIVE = "leave_policy.archive", + LEAVE_POLICY_RESTORE = "leave_policy.restore", + LEAVE_POLICY_PURGE = "leave_policy.purge", + + POSITION_READ_COMMON = "position.read_common", + POSITION_READ_ABSOLUTE = "position.read_absolute", + POSITION_CREATE = "position.create", + POSITION_UPDATE = "position.update", + POSITION_ARCHIVE = "position.archive", + POSITION_RESTORE = "position.restore", + POSITION_PURGE = "position.purge", + + POSITION_ASSIGNMENT_READ_COMMON = "position_assignment.read_common", + POSITION_ASSIGNMENT_READ_ABSOLUTE = "position_assignment.read_absolute", + + WORK_CALENDAR_READ_COMMON = "work_calendar.read_common", + WORK_CALENDAR_READ_ABSOLUTE = "work_calendar.read_absolute", + WORK_CALENDAR_CREATE = "work_calendar.create", + WORK_CALENDAR_UPDATE = "work_calendar.update", + WORK_CALENDAR_ARCHIVE = "work_calendar.archive", + WORK_CALENDAR_RESTORE = "work_calendar.restore", + WORK_CALENDAR_PURGE = "work_calendar.purge", + WORK_CALENDAR_EXCEPTION_READ_COMMON = "work_calendar_exception.read_common", + WORK_CALENDAR_EXCEPTION_READ_ABSOLUTE = "work_calendar_exception.read_absolute", + WORK_CALENDAR_EXCEPTION_CREATE = "work_calendar_exception.create", + WORK_CALENDAR_EXCEPTION_UPDATE = "work_calendar_exception.update", + WORK_CALENDAR_EXCEPTION_PURGE = "work_calendar_exception.purge", + + WORK_SCHEDULE_READ_COMMON = "work_schedule.read_common", + WORK_SCHEDULE_READ_ABSOLUTE = "work_schedule.read_absolute", + WORK_SCHEDULE_CREATE = "work_schedule.create", + WORK_SCHEDULE_CREATE_REVISION = "work_schedule.create_revision", + WORK_SCHEDULE_ARCHIVE = "work_schedule.archive", + WORK_SCHEDULE_RESTORE = "work_schedule.restore", + WORK_SCHEDULE_PURGE = "work_schedule.purge", + + // --------------------------------------------------------------------------- // Notification // ---------------------------------------------------------------------------