aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-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
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs17
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs10
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;
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
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 {