< Summary

Information
Class: LGDXRobotCloud.Utilities.Helpers.LgdxRolesHelper
Assembly: LGDXRobotCloud.Utilities
File(s): /builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.Utilities/Helpers/LgdxRolesHelper.cs
Line coverage
97%
Covered lines: 137
Uncovered lines: 3
Coverable lines: 140
Total lines: 158
Line coverage: 97.8%
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_DefaultRoles()100%11100%
.cctor()100%11100%
IsSystemRole(...)100%11100%
GetSystemRoleId(...)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{
 7  public required LgdxRoleType RoleType { get; set; }
 8  public required string Name { get; set; }
 9  public List<string> Scopes { get; set; } = [];
 10}
 11
 12public class LgdxRolesHelper
 13{
 1114  public static Dictionary<Guid, LgdxRoleData> DefaultRoles { get; set; } = new()
 115  {
 116    {
 117      new Guid("01942232-62d5-7db2-a566-f720e44ade0d"),
 118      new LgdxRoleData
 119      {
 120        RoleType = LgdxRoleType.GlobalAdministrator,
 121        Name = LgdxRoleType.GlobalAdministrator.ToEnumMember()!,
 122        Scopes = [
 123          "LGDXRobotCloud.API/FullAccess"
 124        ]
 125      }
 126    },
 127    {
 128      new Guid("01942232-62d5-7b98-9fbb-137f811c2ad9"),
 129      new LgdxRoleData
 130      {
 131        RoleType = LgdxRoleType.GlobalAuditor,
 132        Name = LgdxRoleType.GlobalAuditor.ToEnumMember()!,
 133        Scopes = [
 134          "LGDXRobotCloud.API/Read"
 135        ]
 136      }
 137    },
 138    {
 139      new Guid("01942232-62d5-734a-b2fe-5caf8b22deda"),
 140      new LgdxRoleData
 141      {
 142        RoleType = LgdxRoleType.RobotAdministrator,
 143        Name = LgdxRoleType.RobotAdministrator.ToEnumMember()!,
 144        Scopes = [
 145          "LGDXRobotCloud.API/Navigation/Robots/FullAccess"
 146        ]
 147      }
 148    },
 149    {
 150      new Guid("01942232-62d5-7dda-99de-e041a0ec179b"),
 151      new LgdxRoleData
 152      {
 153        RoleType = LgdxRoleType.RobotAuditor,
 154        Name = LgdxRoleType.RobotAuditor.ToEnumMember()!,
 155        Scopes = [
 156          "LGDXRobotCloud.API/Navigation/Robots/Read"
 157        ]
 158      }
 159    },
 160    {
 161      new Guid("01942232-62d5-7a90-99c0-3716b4fd2bb1"),
 162      new LgdxRoleData
 163      {
 164        RoleType = LgdxRoleType.NavigationAdministrator,
 165        Name = LgdxRoleType.NavigationAdministrator.ToEnumMember()!,
 166        Scopes = [
 167          "LGDXRobotCloud.API/Navigation/FullAccess"
 168        ]
 169      }
 170    },
 171    {
 172      new Guid("01942232-62d5-718a-b69a-044ac485ea0c"),
 173      new LgdxRoleData
 174      {
 175        RoleType = LgdxRoleType.NavigationAuditor,
 176        Name = LgdxRoleType.NavigationAuditor.ToEnumMember()!,
 177        Scopes = [
 178          "LGDXRobotCloud.API/Navigation/Read"
 179        ]
 180      }
 181    },
 182    {
 183      new Guid("01942232-62d5-7218-a36f-b37da58d0066"),
 184      new LgdxRoleData
 185      {
 186        RoleType = LgdxRoleType.AutomationAdministrator,
 187        Name = LgdxRoleType.AutomationAdministrator.ToEnumMember()!,
 188        Scopes = [
 189          "LGDXRobotCloud.API/Automation/FullAccess"
 190        ]
 191      }
 192    },
 193    {
 194      new Guid("01942232-62d5-7ad9-8fe5-4ca5135d3d5f"),
 195      new LgdxRoleData
 196      {
 197        RoleType = LgdxRoleType.AutomationAuditor,
 198        Name = LgdxRoleType.AutomationAuditor.ToEnumMember()!,
 199        Scopes = [
 1100          "LGDXRobotCloud.API/Automation/Read"
 1101        ]
 1102      }
 1103    },
 1104    {
 1105      new Guid("01942232-62d5-755d-8cc6-dd069622cca5"),
 1106      new LgdxRoleData
 1107      {
 1108        RoleType = LgdxRoleType.AutoTaskAdministrator,
 1109        Name = LgdxRoleType.AutoTaskAdministrator.ToEnumMember()!,
 1110        Scopes = [
 1111          "LGDXRobotCloud.API/Automation/AutoTasks/FullAccess"
 1112        ]
 1113      }
 1114    },
 1115    {
 1116      new Guid("01942232-62d5-7d00-b742-e41e7421bf8f"),
 1117      new LgdxRoleData
 1118      {
 1119        RoleType = LgdxRoleType.AutoTaskAuditor,
 1120        Name = LgdxRoleType.AutoTaskAuditor.ToEnumMember()!,
 1121        Scopes = [
 1122          "LGDXRobotCloud.API/Automation/AutoTasks/Read"
 1123        ]
 1124      }
 1125    },
 1126    {
 1127      new Guid("01942323-e76a-79ef-9502-8f3894194070"),
 1128      new LgdxRoleData
 1129      {
 1130        RoleType = LgdxRoleType.AutoTaskOperator,
 1131        Name = LgdxRoleType.AutoTaskOperator.ToEnumMember()!,
 1132        Scopes = [
 1133          "LGDXRobotCloud.API/Automation/AutoTasks/Write",
 1134          "LGDXRobotCloud.API/Automation/AutoTasks/Delete"
 1135        ]
 1136      }
 1137    },
 1138    {
 1139      new Guid("01942323-e76a-7ce8-a4f9-d550527ffe4e"),
 1140      new LgdxRoleData
 1141      {
 1142        RoleType = LgdxRoleType.EmailRecipient,
 1143        Name = LgdxRoleType.EmailRecipient.ToEnumMember()!,
 1144        Scopes = []
 1145      }
 1146    }
 1147  };
 148
 149  public static bool IsSystemRole(Guid roleId)
 10150  {
 10151    return DefaultRoles.ContainsKey(roleId);
 10152  }
 153
 154  public static Guid GetSystemRoleId(LgdxRoleType roleType)
 0155  {
 0156    return DefaultRoles.First(r => r.Value.RoleType == roleType).Key;
 0157  }
 158}