< Summary

Information
Class: LGDXRobotCloud.Utilities.Helpers.LgdxRoleData
Assembly: LGDXRobotCloud.Utilities
File(s): /builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.Utilities/Helpers/LgdxRolesHelper.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 3
Coverable lines: 3
Total lines: 158
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_RoleType()100%210%
get_Name()100%210%
get_Scopes()100%210%

File(s)

/builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.Utilities/Helpers/LgdxRolesHelper.cs

#LineLine coverage
 1using LGDXRobotCloud.Utilities.Enums;
 2
 3namespace LGDXRobotCloud.Utilities.Helpers;
 4
 5public record LgdxRoleData
 6{
 07  public required LgdxRoleType RoleType { get; set; }
 08  public required string Name { get; set; }
 09  public List<string> Scopes { get; set; } = [];
 10}
 11
 12public class LgdxRolesHelper
 13{
 14  public static Dictionary<Guid, LgdxRoleData> DefaultRoles { get; set; } = new()
 15  {
 16    {
 17      new Guid("01942232-62d5-7db2-a566-f720e44ade0d"),
 18      new LgdxRoleData
 19      {
 20        RoleType = LgdxRoleType.GlobalAdministrator,
 21        Name = LgdxRoleType.GlobalAdministrator.ToEnumMember()!,
 22        Scopes = [
 23          "LGDXRobotCloud.API/FullAccess"
 24        ]
 25      }
 26    },
 27    {
 28      new Guid("01942232-62d5-7b98-9fbb-137f811c2ad9"),
 29      new LgdxRoleData
 30      {
 31        RoleType = LgdxRoleType.GlobalAuditor,
 32        Name = LgdxRoleType.GlobalAuditor.ToEnumMember()!,
 33        Scopes = [
 34          "LGDXRobotCloud.API/Read"
 35        ]
 36      }
 37    },
 38    {
 39      new Guid("01942232-62d5-734a-b2fe-5caf8b22deda"),
 40      new LgdxRoleData
 41      {
 42        RoleType = LgdxRoleType.RobotAdministrator,
 43        Name = LgdxRoleType.RobotAdministrator.ToEnumMember()!,
 44        Scopes = [
 45          "LGDXRobotCloud.API/Navigation/Robots/FullAccess"
 46        ]
 47      }
 48    },
 49    {
 50      new Guid("01942232-62d5-7dda-99de-e041a0ec179b"),
 51      new LgdxRoleData
 52      {
 53        RoleType = LgdxRoleType.RobotAuditor,
 54        Name = LgdxRoleType.RobotAuditor.ToEnumMember()!,
 55        Scopes = [
 56          "LGDXRobotCloud.API/Navigation/Robots/Read"
 57        ]
 58      }
 59    },
 60    {
 61      new Guid("01942232-62d5-7a90-99c0-3716b4fd2bb1"),
 62      new LgdxRoleData
 63      {
 64        RoleType = LgdxRoleType.NavigationAdministrator,
 65        Name = LgdxRoleType.NavigationAdministrator.ToEnumMember()!,
 66        Scopes = [
 67          "LGDXRobotCloud.API/Navigation/FullAccess"
 68        ]
 69      }
 70    },
 71    {
 72      new Guid("01942232-62d5-718a-b69a-044ac485ea0c"),
 73      new LgdxRoleData
 74      {
 75        RoleType = LgdxRoleType.NavigationAuditor,
 76        Name = LgdxRoleType.NavigationAuditor.ToEnumMember()!,
 77        Scopes = [
 78          "LGDXRobotCloud.API/Navigation/Read"
 79        ]
 80      }
 81    },
 82    {
 83      new Guid("01942232-62d5-7218-a36f-b37da58d0066"),
 84      new LgdxRoleData
 85      {
 86        RoleType = LgdxRoleType.AutomationAdministrator,
 87        Name = LgdxRoleType.AutomationAdministrator.ToEnumMember()!,
 88        Scopes = [
 89          "LGDXRobotCloud.API/Automation/FullAccess"
 90        ]
 91      }
 92    },
 93    {
 94      new Guid("01942232-62d5-7ad9-8fe5-4ca5135d3d5f"),
 95      new LgdxRoleData
 96      {
 97        RoleType = LgdxRoleType.AutomationAuditor,
 98        Name = LgdxRoleType.AutomationAuditor.ToEnumMember()!,
 99        Scopes = [
 100          "LGDXRobotCloud.API/Automation/Read"
 101        ]
 102      }
 103    },
 104    {
 105      new Guid("01942232-62d5-755d-8cc6-dd069622cca5"),
 106      new LgdxRoleData
 107      {
 108        RoleType = LgdxRoleType.AutoTaskAdministrator,
 109        Name = LgdxRoleType.AutoTaskAdministrator.ToEnumMember()!,
 110        Scopes = [
 111          "LGDXRobotCloud.API/Automation/AutoTasks/FullAccess"
 112        ]
 113      }
 114    },
 115    {
 116      new Guid("01942232-62d5-7d00-b742-e41e7421bf8f"),
 117      new LgdxRoleData
 118      {
 119        RoleType = LgdxRoleType.AutoTaskAuditor,
 120        Name = LgdxRoleType.AutoTaskAuditor.ToEnumMember()!,
 121        Scopes = [
 122          "LGDXRobotCloud.API/Automation/AutoTasks/Read"
 123        ]
 124      }
 125    },
 126    {
 127      new Guid("01942323-e76a-79ef-9502-8f3894194070"),
 128      new LgdxRoleData
 129      {
 130        RoleType = LgdxRoleType.AutoTaskOperator,
 131        Name = LgdxRoleType.AutoTaskOperator.ToEnumMember()!,
 132        Scopes = [
 133          "LGDXRobotCloud.API/Automation/AutoTasks/Write",
 134          "LGDXRobotCloud.API/Automation/AutoTasks/Delete"
 135        ]
 136      }
 137    },
 138    {
 139      new Guid("01942323-e76a-7ce8-a4f9-d550527ffe4e"),
 140      new LgdxRoleData
 141      {
 142        RoleType = LgdxRoleType.EmailRecipient,
 143        Name = LgdxRoleType.EmailRecipient.ToEnumMember()!,
 144        Scopes = []
 145      }
 146    }
 147  };
 148
 149  public static bool IsSystemRole(Guid roleId)
 150  {
 151    return DefaultRoles.ContainsKey(roleId);
 152  }
 153
 154  public static Guid GetSystemRoleId(LgdxRoleType roleType)
 155  {
 156    return DefaultRoles.First(r => r.Value.RoleType == roleType).Key;
 157  }
 158}