aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Modules')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs9
-rw-r--r--OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs15
-rw-r--r--OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs13
4 files changed, 29 insertions, 10 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;
32using System.Collections.Generic; 32using System.Collections.Generic;
33using System.Reflection; 33using System.Reflection;
34using log4net; 34using log4net;
35using OpenSim.Framework;
35using OpenSim.Region.Environment.Interfaces; 36using OpenSim.Region.Environment.Interfaces;
36using OpenSim.Region.Environment.Modules.Framework; 37using OpenSim.Region.Environment.Modules.Framework;
37using OpenSim.Region.Environment.Modules.Framework.InterfaceCommander; 38using 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