diff options
Adjust permissions to work hand in hand with what the viewer believes they are.
This fixes the issue of "Show in Search" seeming resetting at random.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 39f5a4a..e6a4283 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -901,7 +901,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
901 | return permission; | 901 | return permission; |
902 | } | 902 | } |
903 | 903 | ||
904 | protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers) | 904 | protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers, bool allowEstateManager) |
905 | { | 905 | { |
906 | if (parcel.LandData.OwnerID == user) | 906 | if (parcel.LandData.OwnerID == user) |
907 | { | 907 | { |
@@ -916,7 +916,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
916 | return true; | 916 | return true; |
917 | } | 917 | } |
918 | 918 | ||
919 | if (IsEstateManager(user)) | 919 | if (allowEstateManager && IsEstateManager(user)) |
920 | { | 920 | { |
921 | return true; | 921 | return true; |
922 | } | 922 | } |
@@ -943,7 +943,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
943 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 943 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
944 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 944 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
945 | 945 | ||
946 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandRelease); | 946 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandRelease, false); |
947 | } | 947 | } |
948 | 948 | ||
949 | private bool CanReclaimParcel(UUID user, ILandObject parcel, Scene scene) | 949 | private bool CanReclaimParcel(UUID user, ILandObject parcel, Scene scene) |
@@ -951,7 +951,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
951 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 951 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
952 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 952 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
953 | 953 | ||
954 | return GenericParcelOwnerPermission(user, parcel, 0); | 954 | return GenericParcelOwnerPermission(user, parcel, 0,true); |
955 | } | 955 | } |
956 | 956 | ||
957 | private bool CanDeedParcel(UUID user, ILandObject parcel, Scene scene) | 957 | private bool CanDeedParcel(UUID user, ILandObject parcel, Scene scene) |
@@ -968,7 +968,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
968 | if ((client.GetGroupPowers(parcel.LandData.GroupID) & (ulong)GroupPowers.LandDeed) == 0) | 968 | if ((client.GetGroupPowers(parcel.LandData.GroupID) & (ulong)GroupPowers.LandDeed) == 0) |
969 | return false; | 969 | return false; |
970 | 970 | ||
971 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandDeed); | 971 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandDeed, false); |
972 | } | 972 | } |
973 | 973 | ||
974 | private bool CanDeedObject(UUID user, UUID group, Scene scene) | 974 | private bool CanDeedObject(UUID user, UUID group, Scene scene) |
@@ -1055,7 +1055,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1055 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 1055 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
1056 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 1056 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
1057 | 1057 | ||
1058 | return GenericParcelOwnerPermission(user, parcel, (ulong)p); | 1058 | return GenericParcelOwnerPermission(user, parcel, (ulong)p, false); |
1059 | } | 1059 | } |
1060 | 1060 | ||
1061 | /// <summary> | 1061 | /// <summary> |
@@ -1501,7 +1501,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1501 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); | 1501 | DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); |
1502 | if (m_bypassPermissions) return m_bypassPermissionsValue; | 1502 | if (m_bypassPermissions) return m_bypassPermissionsValue; |
1503 | 1503 | ||
1504 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandSetSale); | 1504 | return GenericParcelOwnerPermission(user, parcel, (ulong)GroupPowers.LandSetSale, false); |
1505 | } | 1505 | } |
1506 | 1506 | ||
1507 | private bool CanTakeObject(UUID objectID, UUID stealer, Scene scene) | 1507 | private bool CanTakeObject(UUID objectID, UUID stealer, Scene scene) |