RoleUtils.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using BO.AppServer.Metadata.Enums;
  5. namespace BO.AppServer.Business.Security
  6. {
  7. internal class RoleUtils
  8. {
  9. public static IEnumerable<string> GetElevatedRoles(bool isNormalized = false)
  10. {
  11. return GetRoles(isNormalized, RoleEnum.System, RoleEnum.Console, RoleEnum.Service);
  12. }
  13. public static IEnumerable<string> GetUserRoles(bool isNormalized = false)
  14. {
  15. return GetRoles(isNormalized, RoleEnum.User, RoleEnum.Uploader, RoleEnum.Downloader, RoleEnum.Accountant, RoleEnum.Admin);
  16. }
  17. public static IEnumerable<string> GetAdminRoles(bool isNormalized = false)
  18. {
  19. return GetRoles(isNormalized, RoleEnum.SuperAdmin,RoleEnum.System);
  20. }
  21. public static IEnumerable<string> GetSystemRoles(bool isNormalized = false)
  22. {
  23. return GetRoles(isNormalized, RoleEnum.System, RoleEnum.Console, RoleEnum.B2B, RoleEnum.Service);
  24. }
  25. public static IEnumerable<string> GetAllRoles(bool isNormalized = false)
  26. {
  27. var roles = Enum.GetNames(typeof(RoleEnum));
  28. return isNormalized ? roles.Select(x => x.ToUpper()) : roles;
  29. }
  30. private static IEnumerable<string> GetRoles(bool isNormalized, params RoleEnum[] roles)
  31. {
  32. if (roles == null)
  33. throw new ArgumentNullException(nameof(roles));
  34. if (roles.Length == 0)
  35. return Array.Empty<string>();
  36. return isNormalized ? roles.Select(x => x.ToString().ToUpper()) : roles.Select(x => x.ToString());
  37. }
  38. }
  39. }