Skip to content

Commit 95003db

Browse files
committed
fix: fixes server sided permissions so it checks the parent permissions
1 parent 91f93d1 commit 95003db

3 files changed

Lines changed: 18 additions & 20 deletions

File tree

SharedClasses/PermissionsManager.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,8 +482,7 @@ private static bool IsAllowedServer(Permission permission, string playerHandle)
482482
{
483483
return false;
484484
}
485-
486-
return IsPlayerAceAllowed(playerHandle, GetAceName(permission));
485+
return GetPermissionAndParentPermissions(permission).Any(p => IsPlayerAceAllowed(playerHandle, GetAceName(p)));
487486
}
488487
#endif
489488

SharedClasses/SupplementaryPermissionManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ private static bool IsAllowedServer(string permission, string playerHandle)
124124
return false;
125125
}
126126

127-
return IsPlayerAceAllowed(playerHandle, GetAceName(permission));
127+
return GetPermissionAndParentPermissions(permission).Any(p => IsPlayerAceAllowed(playerHandle, GetAceName(p)));
128128
}
129129
#endif
130130

vMenuServer/MainServer.cs

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ internal void ServerCommandHandler(int source, List<object> args, string _)
547547
[EventHandler("vMenu:GetOutOfCar")]
548548
internal void GetOutOfCar([FromSource] Player source, int vehicleNetId)
549549
{
550-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.PVKickPassengers, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.PVAll, source))
550+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.PVKickPassengers, source))
551551
{
552552
BanManager.BanCheater(source);
553553
return;
@@ -726,7 +726,7 @@ private void RefreshWeather()
726726
[EventHandler("vMenu:UpdateServerWeather")]
727727
internal void UpdateWeather([FromSource] Player source, string newWeather, bool dynamicWeatherNew, bool enableSnow)
728728
{
729-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WOSetWeather, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.WOAll, source))
729+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WOSetWeather, source))
730730
{
731731
BanManager.BanCheater(source);
732732
return;
@@ -750,7 +750,7 @@ internal void UpdateWeather([FromSource] Player source, string newWeather, bool
750750
[EventHandler("vMenu:UpdateServerBlackout")]
751751
internal void UpdateBlackout([FromSource] Player source, bool value)
752752
{
753-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WOBlackout, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.WOAll, source))
753+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WOBlackout, source))
754754
{
755755
BanManager.BanCheater(source);
756756
return;
@@ -762,7 +762,7 @@ internal void UpdateBlackout([FromSource] Player source, bool value)
762762
[EventHandler("vMenu:UpdateServerVehicleBlackout")]
763763
internal void UpdateVehicleBlackout([FromSource] Player source, bool value)
764764
{
765-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WOVehBlackout, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.WOAll, source))
765+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WOVehBlackout, source))
766766
{
767767
BanManager.BanCheater(source);
768768
return;
@@ -778,11 +778,10 @@ internal void UpdateVehicleBlackout([FromSource] Player source, bool value)
778778
[EventHandler("vMenu:UpdateServerWeatherCloudsType")]
779779
internal void UpdateWeatherCloudsType([FromSource] Player source, bool removeClouds)
780780
{
781-
bool allWOPermissions = PermissionsManager.IsAllowed(PermissionsManager.Permission.WOAll, source);
782781

783782
if (removeClouds)
784783
{
785-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WORemoveClouds, source) && !allWOPermissions)
784+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WORemoveClouds, source))
786785
{
787786
BanManager.BanCheater(source);
788787
return;
@@ -792,7 +791,7 @@ internal void UpdateWeatherCloudsType([FromSource] Player source, bool removeClo
792791
}
793792
else
794793
{
795-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WORandomizeClouds, source) && !allWOPermissions)
794+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.WORandomizeClouds, source))
796795
{
797796
BanManager.BanCheater(source);
798797
return;
@@ -813,7 +812,7 @@ internal void UpdateWeatherCloudsType([FromSource] Player source, bool removeClo
813812
[EventHandler("vMenu:UpdateServerTime")]
814813
internal async void UpdateTime([FromSource] Player source, int newHours, int newMinutes, bool newFreezeTime)
815814
{
816-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.TOSetTime, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.TOAll, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.Everything, source))
815+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.TOSetTime, source))
817816
{
818817
BanManager.BanCheater(source);
819818
return;
@@ -858,7 +857,7 @@ internal async void UpdateTime([FromSource] Player source, int newHours, int new
858857
[EventHandler("vMenu:FreezeServerTime")]
859858
internal void FreezeServerTime([FromSource] Player source, bool freezeTime)
860859
{
861-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.TOFreezeTime, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.TOAll, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.Everything, source))
860+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.TOFreezeTime, source))
862861
{
863862
BanManager.BanCheater(source);
864863
return;
@@ -878,7 +877,7 @@ internal void FreezeServerTime([FromSource] Player source, bool freezeTime)
878877
[EventHandler("vMenu:KickPlayer")]
879878
internal void KickPlayer([FromSource] Player source, int target, string kickReason = "You have been kicked from the server.")
880879
{
881-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPKick, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.OPAll, source))
880+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPKick, source))
882881
{
883882
BanManager.BanCheater(source);
884883
return;
@@ -913,7 +912,7 @@ internal void KickPlayer([FromSource] Player source, int target, string kickReas
913912
[EventHandler("vMenu:KillPlayer")]
914913
internal void KillPlayer([FromSource] Player source, int target)
915914
{
916-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPKill, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.OPAll, source))
915+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPKill, source))
917916
{
918917
BanManager.BanCheater(source);
919918
return;
@@ -937,7 +936,7 @@ internal void KillPlayer([FromSource] Player source, int target)
937936
[EventHandler("vMenu:SummonPlayer")]
938937
internal async void SummonPlayer([FromSource] Player source, int target, int numberOfSeats)
939938
{
940-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPSummon, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.OPAll, source))
939+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPSummon, source))
941940
{
942941
BanManager.BanCheater(source);
943942
return;
@@ -1015,7 +1014,7 @@ internal async void SummonPlayer([FromSource] Player source, int target, int num
10151014
[EventHandler("vMenu:SendMessageToPlayer")]
10161015
internal void SendPrivateMessage([FromSource] Player source, int target, string message)
10171016
{
1018-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPSendMessage, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.OPAll, source))
1017+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPSendMessage, source))
10191018
{
10201019
BanManager.BanCheater(source);
10211020
return;
@@ -1049,7 +1048,7 @@ internal void SendPrivateMessage([FromSource] Player source, int target, string
10491048

10501049
foreach (string playerHandle in joinedPlayers)
10511050
{
1052-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPSeePrivateMessages, playerHandle) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.OPAll, playerHandle))
1051+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.OPSeePrivateMessages, playerHandle))
10531052
{
10541053
continue;
10551054
}
@@ -1091,7 +1090,7 @@ private static void KickLog(string kickLogMesage)
10911090
[EventHandler("vMenu:SaveTeleportLocation")]
10921091
internal void AddTeleportLocation([FromSource] Player source, string locationJson)
10931092
{
1094-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.MSTeleportSaveLocation, source) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.MSAll, source))
1093+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.MSTeleportSaveLocation, source))
10951094
{
10961095
BanManager.BanCheater(source);
10971096
return;
@@ -1141,7 +1140,7 @@ internal void GetPlayerCoords([FromSource] Player source, long rpcId, int player
11411140
{
11421141
var coords = Vector3.Zero;
11431142

1144-
if (PermissionsManager.IsAllowed(PermissionsManager.Permission.OPTeleport, source) || PermissionsManager.IsAllowed(PermissionsManager.Permission.OPAll, source))
1143+
if (PermissionsManager.IsAllowed(PermissionsManager.Permission.OPTeleport, source))
11451144
{
11461145
Player targetPlayer = GetPlayerFromServerId(playerId);
11471146

@@ -1169,7 +1168,7 @@ private IEnumerable<Player> GetJoinQuitNotifPlayers()
11691168

11701169
foreach (string playerHandle in joinedPlayers)
11711170
{
1172-
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.MSJoinQuitNotifs, playerHandle) && !PermissionsManager.IsAllowed(PermissionsManager.Permission.MSAll, playerHandle))
1171+
if (!PermissionsManager.IsAllowed(PermissionsManager.Permission.MSJoinQuitNotifs, playerHandle))
11731172
{
11741173
continue;
11751174
}

0 commit comments

Comments
 (0)