This commit is contained in:
Zeeshaun
2026-03-17 09:53:09 -05:00
parent cdcba54aa4
commit 1a0702a79a
590 changed files with 62058 additions and 0 deletions
@@ -0,0 +1,191 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace LCU.Library.Internal.IncentiveApiModels.Entities
{
public class Permission
{
public string Code { get; }
public string Description { get; }
private Permission(string code, string description)
{
Code = code;
Description = description;
}
public static Permission LookupPermissionFromCode(string code)
{
var foundPermissions = GetAllPermissions().Where(x => x.Code == code).ToList();
if (foundPermissions.Count != 1)
{
throw new Exception($"{foundPermissions.Count} found using Code: {code}");
}
return foundPermissions.FirstOrDefault();
}
public static readonly Permission AccessTestEnvironments = new Permission("ACCESS_TEST_ENVIRONMENT", "User can access the test environments");
public static readonly Permission AssignAssociatesToDepartment =
new Permission("ASSIGN_ASSOCIATES_TO_DEPARTMENT", "User can assign associates to additional departments");
public static readonly Permission AssignPermissionsToAssociates =
new Permission("ASSIGN_PERMISSIONS_TO_ASSOCIATES", "User can add permissions to an associate's user role");
public static readonly Permission AssignRegionalManager = new Permission("ASSIGN_REGIONAL_MANAGER", "User can set the regional manager for a region");
public static readonly Permission CreateActivity = new Permission("CREATE_ACTIVITY", "User can create manual activity");
public static readonly Permission EligibleForReferrals = new Permission("ELIGIBLE_FOR_REFERRALS", "User is eligible for referrals");
public static readonly Permission GeneratePayoutFiles = new Permission("GENERATE_PAYOUT_FILES", "User can generate payout files for HR");
public static readonly Permission HaveSalesGoals = new Permission("HAVE_SALES_GOALS", "User can have sales goals");
public static readonly Permission ManageCommissions = new Permission("MANAGE_COMMISSIONS", "User can manage the commission table");
public static readonly Permission ManageDepartments = new Permission("MANAGE_DEPARTMENTS", "User can manage departments");
public static readonly Permission ManageDepartmentGoals = new Permission("MANAGE_DEPARTMENT_GOALS", "User can manage their department goals");
public static readonly Permission ManageEmployeeDetails = new Permission("MANAGE_EMPLOYEE_DETAILS", "User can manage employee details");
public static readonly Permission ManagePersonnelGoals = new Permission("MANAGE_PERSONNEL_GOALS", "User can manage personnel goals");
public static readonly Permission ManageRoleMappings =
new Permission("MANAGE_ROLE_MAPPINGS", "User can manage the business to application role mappings");
public static readonly Permission SetActivityAcceptedDate = new Permission("SET_ACTIVITY_ACCEPTED_DATE", "User can set activity accepted date");
public static readonly Permission SetActivityToAcceptedFromManualReview =
new Permission("SET_ACTIVITY_TO_ACCEPTED_FROM_MANUAL_REVIEW", "User can set activity to Accepted from ManualReview");
public static readonly Permission SetActivityToAcceptedFromPendingReferral = new Permission("SET_ACTIVITY_TO_ACCEPTED_FROM_PENDING_REFERRAL",
"User can set activity to Accepted from PendingReferral");
public static readonly Permission SetActivityToAcceptedFromPendingTransfer = new Permission("SET_ACTIVITY_TO_ACCEPTED_FROM_PENDING_TRANSFER",
"User can set activity to Accepted from PendingTransfer");
public static readonly Permission SetActivityToAcceptedFromRejected =
new Permission("SET_ACTIVITY_TO_ACCEPTED_FROM_REJECTED", "User can set activity to Accepted from Rejected");
public static readonly Permission SetActivityToManualReviewFromAccepted =
new Permission("SET_ACTIVITY_TO_MANUAL_REVIEW_FROM_ACCEPTED", "User can set activity to ManualReview from Accepted");
public static readonly Permission SetActivityToManualReviewFromRejected =
new Permission("SET_ACTIVITY_TO_MANUAL_REVIEW_FROM_REJECTED", "User can set activity to ManualReview from Rejected");
public static readonly Permission SetActivityToPendingReferralFromAccepted = new Permission("SET_ACTIVITY_TO_PENDING_REFERRAL_FROM_ACCEPTED",
"User can set activity to PendingReferral from Accepted");
public static readonly Permission SetActivityToPendingReferralFromRejected = new Permission("SET_ACTIVITY_TO_PENDING_REFERRAL_FROM_REJECTED",
"User can set activity to PendingReferral from Rejected");
public static readonly Permission SetActivityToPendingTransferFromAccepted = new Permission("SET_ACTIVITY_TO_PENDING_TRANSFER_FROM_ACCEPTED",
"User can set activity to PendingTransfer from Accepted");
public static readonly Permission SetActivityToRejectedFromAccepted =
new Permission("SET_ACTIVITY_TO_REJECTED_FROM_ACCEPTED", "User can set activity to Rejected from Accepted");
public static readonly Permission SetActivityToRejectedFromManualReview =
new Permission("SET_ACTIVITY_TO_REJECTED_FROM_MANUAL_REVIEW", "User can set activity to Rejected from ManualReview");
public static readonly Permission SetActivityToTransferredFromPendingTransfer = new Permission("SET_ACTIVITY_TO_TRANSFERRED_FROM_PENDING_TRANSFER",
"User can set activity to Transferred from PendingTransfer");
public static readonly Permission TransferActivitiesBetweenAssociates =
new Permission("TRANSFER_ACTIVITIES_BETWEEN_ASSOCIATES", "User can transfer activities between associates");
public static readonly Permission TransferActivitiesBetweenDepartments =
new Permission("TRANSFER_ACTIVITIES_BETWEEN_DEPARTMENTS", "User can transfer activities between departments");
public static readonly Permission Unknown = new Permission("UNKNOWN", "A Permission Could Not Be Parsed By The System. Possibly Removed.");
public static readonly Permission ViewActivityAudit = new Permission("VIEW_ACTIVITY_AUDIT", "User can view the activity audit page");
public static readonly Permission ViewActivityReport = new Permission("VIEW_ACTIVITY_REPORT", "User can view the activity report");
public static readonly Permission ViewAuditReport = new Permission("VIEW_AUDIT_REPORT", "User can view the audit report");
public static readonly Permission ViewAssociateRecordReport = new Permission("VIEW_ASSOCIATE_RECORD_REPORT", "User can view the associate record report");
public static readonly Permission ViewDashboard = new Permission("VIEW_DASHBOARD",
"User can see a dashboard showing their referral totals and their sales totals compared to goal");
public static readonly Permission ViewDeadActivityQueue = new Permission("VIEW_DEAD_ACTIVITY_QUEUE", "User can see the dead activity queue");
public static readonly Permission ViewGoalProgressReport = new Permission("VIEW_GOAL_PROGRESS_REPORT", "User can view the goal progress report");
public static readonly Permission ViewPayoutReport = new Permission("VIEW_PAYOUT_REPORT", "User can view the payout report");
public static readonly Permission ViewPerformanceForBusinessLine =
new Permission("VIEW_PERFORMANCE_FOR_BUSINESS_LINE", "User can see performance for their business line");
public static readonly Permission ViewPerformanceForDepartment =
new Permission("VIEW_PERFORMANCE_FOR_DEPARTMENT", "User can see performance for their department");
public static readonly Permission ViewPerformanceForRegion = new Permission("VIEW_PERFORMANCE_FOR_REGION", "User can see performance for their region");
public static readonly Permission ViewReports = new Permission("VIEW_REPORTS", "User can access the reports landing page");
public static List<Permission> GetAllPermissions(bool excludeUnknown = false)
{
var foundInstances = new List<Permission>();
foreach (var field in typeof(Permission).GetFields(BindingFlags.Static | BindingFlags.Public))
{
if (field.FieldType != typeof(Permission))
{
continue;
}
if (field.GetValue(field.Name) is Permission instance)
{
foundInstances.Add(instance);
}
}
return excludeUnknown ? foundInstances.Where(x => x.Code != Unknown.Code).ToList() : foundInstances;
}
/** Collection of permissions needed for minimal application access */
public static List<Permission> BaselinePermissions()
{
return new List<Permission>
{
ViewActivityAudit,
ViewDashboard
};
}
public static List<Permission> DepartmentManagerPermissions()
{
return new List<Permission>
{
AssignAssociatesToDepartment,
SetActivityToRejectedFromManualReview,
TransferActivitiesBetweenAssociates,
TransferActivitiesBetweenDepartments,
ViewReports,
ViewActivityReport,
ViewGoalProgressReport,
ViewPerformanceForDepartment
}
.Concat(TransferApprovalPermissions())
.Concat(TransferRejectionPermissions())
.Concat(TransferRequestPermissions())
.ToList();
}
public static List<Permission> TransferApprovalPermissions()
{
return new List<Permission>
{
SetActivityToTransferredFromPendingTransfer
};
}
public static List<Permission> TransferRejectionPermissions()
{
return new List<Permission>
{
SetActivityToAcceptedFromPendingTransfer
};
}
public static List<Permission> TransferRequestPermissions()
{
return new List<Permission>
{
SetActivityToPendingTransferFromAccepted
};
}
}
}