PermissionsEuiState.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using Content.Shared.Eui;
  2. using Robust.Shared.Network;
  3. using Robust.Shared.Serialization;
  4. namespace Content.Shared.Administration
  5. {
  6. [Serializable, NetSerializable]
  7. public sealed class PermissionsEuiState : EuiStateBase
  8. {
  9. public bool IsLoading;
  10. public AdminData[] Admins = Array.Empty<AdminData>();
  11. public Dictionary<int, AdminRankData> AdminRanks = new();
  12. [Serializable, NetSerializable]
  13. public struct AdminData
  14. {
  15. public NetUserId UserId;
  16. public string? UserName;
  17. public string? Title;
  18. public bool Suspended;
  19. public AdminFlags PosFlags;
  20. public AdminFlags NegFlags;
  21. public int? RankId;
  22. }
  23. [Serializable, NetSerializable]
  24. public struct AdminRankData
  25. {
  26. public string Name;
  27. public AdminFlags Flags;
  28. }
  29. }
  30. public static class PermissionsEuiMsg
  31. {
  32. [Serializable, NetSerializable]
  33. public sealed class AddAdmin : EuiMessageBase
  34. {
  35. public string UserNameOrId = string.Empty;
  36. public string? Title;
  37. public AdminFlags PosFlags;
  38. public AdminFlags NegFlags;
  39. public int? RankId;
  40. public bool Suspended;
  41. }
  42. [Serializable, NetSerializable]
  43. public sealed class RemoveAdmin : EuiMessageBase
  44. {
  45. public NetUserId UserId;
  46. }
  47. [Serializable, NetSerializable]
  48. public sealed class UpdateAdmin : EuiMessageBase
  49. {
  50. public NetUserId UserId;
  51. public string? Title;
  52. public AdminFlags PosFlags;
  53. public AdminFlags NegFlags;
  54. public int? RankId;
  55. public bool Suspended;
  56. }
  57. [Serializable, NetSerializable]
  58. public sealed class AddAdminRank : EuiMessageBase
  59. {
  60. public string Name = string.Empty;
  61. public AdminFlags Flags;
  62. }
  63. [Serializable, NetSerializable]
  64. public sealed class RemoveAdminRank : EuiMessageBase
  65. {
  66. public int Id;
  67. }
  68. [Serializable, NetSerializable]
  69. public sealed class UpdateAdminRank : EuiMessageBase
  70. {
  71. public int Id;
  72. public string Name = string.Empty;
  73. public AdminFlags Flags;
  74. }
  75. }
  76. }