diff options
Diffstat (limited to 'OpenSim/Region/Environment')
7 files changed, 57 insertions, 11 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs index 2b1a4ed..e6597c3 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -137,6 +137,8 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
137 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid | 137 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid |
138 | // otherwise, use the master avatar uuid instead | 138 | // otherwise, use the master avatar uuid instead |
139 | LLUUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 139 | LLUUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; |
140 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero) | ||
141 | masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
140 | foreach (SceneObjectPart part in sceneObject.Children.Values) | 142 | foreach (SceneObjectPart part in sceneObject.Children.Values) |
141 | { | 143 | { |
142 | if (!resolveUserUuid(part.CreatorID)) | 144 | if (!resolveUserUuid(part.CreatorID)) |
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs index d22aac6..1e622be 100644 --- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs | |||
@@ -212,6 +212,8 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
212 | { | 212 | { |
213 | // EstateAccessDelta handles Estate Managers, Sim Access, Sim Banlist, allowed Groups.. etc. | 213 | // EstateAccessDelta handles Estate Managers, Sim Access, Sim Banlist, allowed Groups.. etc. |
214 | 214 | ||
215 | if (user == m_scene.RegionInfo.EstateSettings.EstateOwner) | ||
216 | return; // never process EO | ||
215 | if (user == m_scene.RegionInfo.MasterAvatarAssignedUUID) | 217 | if (user == m_scene.RegionInfo.MasterAvatarAssignedUUID) |
216 | return; // never process owner | 218 | return; // never process owner |
217 | 219 | ||
@@ -557,7 +559,10 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
557 | 559 | ||
558 | args.regionFlags = GetRegionFlags(); | 560 | args.regionFlags = GetRegionFlags(); |
559 | args.regionName = m_scene.RegionInfo.RegionName; | 561 | args.regionName = m_scene.RegionInfo.RegionName; |
560 | args.SimOwner = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 562 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero) |
563 | args.SimOwner = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
564 | else | ||
565 | args.SimOwner = m_scene.RegionInfo.MasterAvatarAssignedUUID; | ||
561 | args.terrainBase0 = LLUUID.Zero; | 566 | args.terrainBase0 = LLUUID.Zero; |
562 | args.terrainBase1 = LLUUID.Zero; | 567 | args.terrainBase1 = LLUUID.Zero; |
563 | args.terrainBase2 = LLUUID.Zero; | 568 | args.terrainBase2 = LLUUID.Zero; |
@@ -811,6 +816,8 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
811 | { | 816 | { |
812 | if (avatarID == m_scene.RegionInfo.MasterAvatarAssignedUUID) | 817 | if (avatarID == m_scene.RegionInfo.MasterAvatarAssignedUUID) |
813 | return true; | 818 | return true; |
819 | if (avatarID == m_scene.RegionInfo.EstateSettings.EstateOwner) | ||
820 | return true; | ||
814 | 821 | ||
815 | List<LLUUID> ems = new List<LLUUID>(m_scene.RegionInfo.EstateSettings.EstateManagers); | 822 | List<LLUUID> ems = new List<LLUUID>(m_scene.RegionInfo.EstateSettings.EstateManagers); |
816 | if (ems.Contains(avatarID)) | 823 | if (ems.Contains(avatarID)) |
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs index ca03035..d5cb0eb 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs | |||
@@ -162,7 +162,10 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
162 | ILandObject fullSimParcel = new LandObject(LLUUID.Zero, false, m_scene); | 162 | ILandObject fullSimParcel = new LandObject(LLUUID.Zero, false, m_scene); |
163 | 163 | ||
164 | fullSimParcel.setLandBitmap(fullSimParcel.getSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); | 164 | fullSimParcel.setLandBitmap(fullSimParcel.getSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); |
165 | fullSimParcel.landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 165 | if(m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero) |
166 | fullSimParcel.landData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
167 | else | ||
168 | fullSimParcel.landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | ||
166 | fullSimParcel.landData.ClaimDate = Util.UnixTimeSinceEpoch(); | 169 | fullSimParcel.landData.ClaimDate = Util.UnixTimeSinceEpoch(); |
167 | AddLandObject(fullSimParcel); | 170 | AddLandObject(fullSimParcel); |
168 | } | 171 | } |
@@ -931,7 +934,10 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
931 | { | 934 | { |
932 | if (m_scene.ExternalChecks.ExternalChecksCanAbandonParcel(remote_client.AgentId, landList[local_id])) | 935 | if (m_scene.ExternalChecks.ExternalChecksCanAbandonParcel(remote_client.AgentId, landList[local_id])) |
933 | { | 936 | { |
934 | landList[local_id].landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 937 | if(m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero) |
938 | landList[local_id].landData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
939 | else | ||
940 | landList[local_id].landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | ||
935 | m_scene.Broadcast(SendParcelOverlay); | 941 | m_scene.Broadcast(SendParcelOverlay); |
936 | landList[local_id].sendLandUpdateToClient(remote_client); | 942 | landList[local_id].sendLandUpdateToClient(remote_client); |
937 | } | 943 | } |
@@ -945,7 +951,10 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
945 | { | 951 | { |
946 | if (m_scene.ExternalChecks.ExternalChecksCanReclaimParcel(remote_client.AgentId, landList[local_id])) | 952 | if (m_scene.ExternalChecks.ExternalChecksCanReclaimParcel(remote_client.AgentId, landList[local_id])) |
947 | { | 953 | { |
948 | landList[local_id].landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 954 | if(m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero) |
955 | landList[local_id].landData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
956 | else | ||
957 | landList[local_id].landData.OwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID; | ||
949 | landList[local_id].landData.ClaimDate = Util.UnixTimeSinceEpoch(); | 958 | landList[local_id].landData.ClaimDate = Util.UnixTimeSinceEpoch(); |
950 | m_scene.Broadcast(SendParcelOverlay); | 959 | m_scene.Broadcast(SendParcelOverlay); |
951 | landList[local_id].sendLandUpdateToClient(remote_client); | 960 | landList[local_id].sendLandUpdateToClient(remote_client); |
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs index 0fbd4fb..6f72767 100644 --- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | |||
@@ -32,6 +32,7 @@ using System.Collections; | |||
32 | using System.Collections.Generic; | 32 | using System.Collections.Generic; |
33 | using System.Reflection; | 33 | using System.Reflection; |
34 | using log4net; | 34 | using log4net; |
35 | using OpenSim.Framework; | ||
35 | using OpenSim.Region.Environment.Interfaces; | 36 | using OpenSim.Region.Environment.Interfaces; |
36 | using OpenSim.Region.Environment.Modules.Framework; | 37 | using OpenSim.Region.Environment.Modules.Framework; |
37 | using OpenSim.Region.Environment.Modules.Framework.InterfaceCommander; | 38 | using OpenSim.Region.Environment.Modules.Framework.InterfaceCommander; |
@@ -63,6 +64,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
63 | private bool m_bypassPermissions = false; | 64 | private bool m_bypassPermissions = false; |
64 | private bool m_bypassPermissionsValue = true; | 65 | private bool m_bypassPermissionsValue = true; |
65 | private bool m_debugPermissions = false; | 66 | private bool m_debugPermissions = false; |
67 | private bool m_allowGridGods = false; | ||
66 | 68 | ||
67 | #endregion | 69 | #endregion |
68 | 70 | ||
@@ -136,6 +138,8 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
136 | if (!modules.Contains("DefaultPermissionsModule")) | 138 | if (!modules.Contains("DefaultPermissionsModule")) |
137 | return; | 139 | return; |
138 | 140 | ||
141 | m_allowGridGods = myConfig.GetBoolean("allow_grid_gods", false); | ||
142 | |||
139 | m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", true); | 143 | m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", true); |
140 | 144 | ||
141 | if (m_bypassPermissions) | 145 | if (m_bypassPermissions) |
@@ -231,11 +235,6 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
231 | 235 | ||
232 | protected bool IsAdministrator(LLUUID user) | 236 | protected bool IsAdministrator(LLUUID user) |
233 | { | 237 | { |
234 | // m_log.DebugFormat( | ||
235 | // "[PERMISSIONS]: Is adminstrator called for {0} where region master avatar is {1}", | ||
236 | // user, m_scene.RegionInfo.MasterAvatarAssignedUUID); | ||
237 | |||
238 | // If there is no master avatar, return false | ||
239 | if (m_scene.RegionInfo.MasterAvatarAssignedUUID != LLUUID.Zero) | 238 | if (m_scene.RegionInfo.MasterAvatarAssignedUUID != LLUUID.Zero) |
240 | { | 239 | { |
241 | if (m_scene.RegionInfo.MasterAvatarAssignedUUID == user) | 240 | if (m_scene.RegionInfo.MasterAvatarAssignedUUID == user) |
@@ -246,7 +245,9 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
246 | if (m_scene.RegionInfo.EstateSettings.EstateOwner == user) | 245 | if (m_scene.RegionInfo.EstateSettings.EstateOwner == user) |
247 | return true; | 246 | return true; |
248 | } | 247 | } |
249 | 248 | UserProfileData userProfile = m_scene.CommsManager.UserService.GetUserProfile(user); | |
249 | if((userProfile.GodLevel) >= 200 && m_allowGridGods) | ||
250 | return true; | ||
250 | return false; | 251 | return false; |
251 | } | 252 | } |
252 | 253 | ||
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index ca77f2b..3f62610 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -116,6 +116,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
116 | { | 116 | { |
117 | userlevel = 1; | 117 | userlevel = 1; |
118 | } | 118 | } |
119 | // TODO: remove this cruft once MasterAvatar is fully deprecated | ||
120 | // | ||
119 | if (m_regInfo.MasterAvatarAssignedUUID == AgentID) | 121 | if (m_regInfo.MasterAvatarAssignedUUID == AgentID) |
120 | { | 122 | { |
121 | userlevel = 2; | 123 | userlevel = 2; |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 22251e9..00d8298 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -3777,5 +3777,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
3777 | //Console.WriteLine("Terrain packet unacked, resending patch: " + patchX + " , " + patchY); | 3777 | //Console.WriteLine("Terrain packet unacked, resending patch: " + patchX + " , " + patchY); |
3778 | client.SendLayerData(patchX, patchY, Heightmap.GetFloatsSerialised()); | 3778 | client.SendLayerData(patchX, patchY, Heightmap.GetFloatsSerialised()); |
3779 | } | 3779 | } |
3780 | |||
3781 | // public bool IsAdministrator(LLUUID user) | ||
3782 | // { | ||
3783 | // if(RegionInfo.MasterAvatarAssignedUUID != LLUUID.Zero) | ||
3784 | // { | ||
3785 | // if(RegionInfo.MasterAvatarAssignedUUID == user) | ||
3786 | // return true; | ||
3787 | // } | ||
3788 | // | ||
3789 | // UserProfileData userProfile = | ||
3790 | // CommsManager.UserService.GetUserProfile(user); | ||
3791 | // | ||
3792 | // if(userProfile.GodLevel >= 200) | ||
3793 | // return true; | ||
3794 | // | ||
3795 | // return false; | ||
3796 | // } | ||
3780 | } | 3797 | } |
3781 | } | 3798 | } |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index d8d534e..b4cf70a 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -2017,7 +2017,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
2017 | { | 2017 | { |
2018 | if (godStatus) | 2018 | if (godStatus) |
2019 | { | 2019 | { |
2020 | m_godlevel = 250; | 2020 | // TODO: remove this cruft once the master avatar is fully |
2021 | // deprecated. For now, assign god level 200 to anyone | ||
2022 | // who is granted god powers, but has no god level set. | ||
2023 | // | ||
2024 | UserProfileData userProfile = m_scene.CommsManager.UserService.GetUserProfile(agentID); | ||
2025 | if(userProfile.GodLevel > 0) | ||
2026 | m_godlevel = userProfile.GodLevel; | ||
2027 | else | ||
2028 | m_godlevel = 200; | ||
2021 | } | 2029 | } |
2022 | else | 2030 | else |
2023 | { | 2031 | { |