aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs7
-rw-r--r--OpenSim/Region/ClientStack/RegionApplicationBase.cs5
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1GridServices.cs13
-rw-r--r--OpenSim/Region/DataSnapshot/EstateSnapshot.cs14
-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
11 files changed, 81 insertions, 26 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 74f4d44..212567f 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -2693,7 +2693,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2693 2693
2694 //Sending Estate Settings 2694 //Sending Estate Settings
2695 returnblock[0].Parameter = Helpers.StringToField(estateName); 2695 returnblock[0].Parameter = Helpers.StringToField(estateName);
2696 returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.MasterAvatarAssignedUUID.ToString()); 2696 // TODO: remove this cruft once MasterAvatar is fully deprecated
2697 //
2698 if(m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero)
2699 returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.EstateSettings.EstateOwner.ToString());
2700 else
2701 returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.MasterAvatarAssignedUUID.ToString());
2697 returnblock[2].Parameter = Helpers.StringToField(estateID.ToString()); 2702 returnblock[2].Parameter = Helpers.StringToField(estateID.ToString());
2698 2703
2699 returnblock[3].Parameter = Helpers.StringToField(estateFlags.ToString()); 2704 returnblock[3].Parameter = Helpers.StringToField(estateFlags.ToString());
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index 3e941cf..7a552a6 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -135,11 +135,14 @@ namespace OpenSim.Region.ClientStack
135 scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised()); 135 scene.PhysicsScene.SetTerrain(scene.Heightmap.GetFloatsSerialised());
136 scene.PhysicsScene.SetWaterLevel((float)regionInfo.RegionSettings.WaterHeight); 136 scene.PhysicsScene.SetWaterLevel((float)regionInfo.RegionSettings.WaterHeight);
137 137
138 // TODO: Remove this cruft once MasterAvatar is fully deprecated
138 //Master Avatar Setup 139 //Master Avatar Setup
139 UserProfileData masterAvatar; 140 UserProfileData masterAvatar;
140 if (scene.RegionInfo.MasterAvatarAssignedUUID != LLUUID.Zero) 141 if (scene.RegionInfo.MasterAvatarAssignedUUID != LLUUID.Zero)
141 { 142 {
142 masterAvatar = m_commsManager.UserService.SetupMasterUser(scene.RegionInfo.MasterAvatarAssignedUUID); 143 masterAvatar = m_commsManager.UserService.SetupMasterUser(scene.RegionInfo.MasterAvatarAssignedUUID);
144 scene.RegionInfo.MasterAvatarFirstName = masterAvatar.FirstName;
145 scene.RegionInfo.MasterAvatarLastName = masterAvatar.SurName;
143 } 146 }
144 else 147 else
145 { 148 {
@@ -151,7 +154,7 @@ namespace OpenSim.Region.ClientStack
151 154
152 if (masterAvatar != null) 155 if (masterAvatar != null)
153 { 156 {
154 m_log.Info("[PARCEL]: Found master avatar [" + masterAvatar.ID.ToString() + "]"); 157 m_log.InfoFormat("[PARCEL]: Found master avatar {0} {1} [" + masterAvatar.ID.ToString() + "]", scene.RegionInfo.MasterAvatarFirstName, scene.RegionInfo.MasterAvatarLastName);
155 scene.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.ID; 158 scene.RegionInfo.MasterAvatarAssignedUUID = masterAvatar.ID;
156 } 159 }
157 else 160 else
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
index 410b4ac..f1e420e 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
@@ -123,15 +123,10 @@ namespace OpenSim.Region.Communications.OGS1
123 GridParams["server_uri"] = regionInfo.ServerURI; 123 GridParams["server_uri"] = regionInfo.ServerURI;
124 GridParams["region_secret"] = regionInfo.regionSecret; 124 GridParams["region_secret"] = regionInfo.regionSecret;
125 125
126 // part of an initial brutish effort to provide accurate information (as per the xml region spec) 126 if(regionInfo.MasterAvatarAssignedUUID != LLUUID.Zero)
127 // wrt the ownership of a given region 127 GridParams["master_avatar_uuid"] = regionInfo.MasterAvatarAssignedUUID.ToString();
128 // the (very bad) assumption is that this value is being read and handled inconsistently or 128 else
129 // not at all. Current strategy is to put the code in place to support the validity of this information 129 GridParams["master_avatar_uuid"] = regionInfo.EstateSettings.EstateOwner.ToString();
130 // and to roll forward debugging any issues from that point
131 //
132 // this particular section of the mod attempts to supply a value from the region's xml file to the grid
133 // server for the UUID of the region's owner (master avatar)
134 GridParams["master_avatar_uuid"] = regionInfo.MasterAvatarAssignedUUID.ToString();
135 130
136 // Package into an XMLRPC Request 131 // Package into an XMLRPC Request
137 ArrayList SendParams = new ArrayList(); 132 ArrayList SendParams = new ArrayList();
diff --git a/OpenSim/Region/DataSnapshot/EstateSnapshot.cs b/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
index 99a4a0d..eccdcf1 100644
--- a/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
+++ b/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
@@ -28,6 +28,7 @@
28using System; 28using System;
29using System.Xml; 29using System.Xml;
30using libsecondlife; 30using libsecondlife;
31using OpenSim.Framework;
31using OpenSim.Region.DataSnapshot.Interfaces; 32using OpenSim.Region.DataSnapshot.Interfaces;
32using OpenSim.Region.Environment.Scenes; 33using OpenSim.Region.Environment.Scenes;
33 34
@@ -50,15 +51,20 @@ namespace OpenSim.Region.DataSnapshot.Providers
50 public XmlNode RequestSnapshotData(XmlDocument factory) 51 public XmlNode RequestSnapshotData(XmlDocument factory)
51 { 52 {
52 //Estate data section - contains who owns a set of sims and the name of the set. 53 //Estate data section - contains who owns a set of sims and the name of the set.
53 //In Opensim all the estate names are the same as the Master Avatar (owner of the sim)
54 //Now in DataSnapshotProvider module form! 54 //Now in DataSnapshotProvider module form!
55 XmlNode estatedata = factory.CreateNode(XmlNodeType.Element, "estate", ""); 55 XmlNode estatedata = factory.CreateNode(XmlNodeType.Element, "estate", "");
56 56
57 LLUUID ownerid = m_scene.RegionInfo.MasterAvatarAssignedUUID; 57 LLUUID ownerid = m_scene.RegionInfo.MasterAvatarAssignedUUID;
58 if (m_scene.RegionInfo.EstateSettings.EstateOwner != LLUUID.Zero)
59 ownerid = m_scene.RegionInfo.EstateSettings.EstateOwner;
60
61 // Can't fail because if it weren't in cache, we wouldn't be here
62 //
63 UserProfileData userProfile = m_scene.CommsManager.UserService.GetUserProfile(ownerid);
58 64
59 //TODO: Change to query userserver about the master avatar UUID ? 65 //TODO: Change to query userserver about the master avatar UUID ?
60 String firstname = m_scene.RegionInfo.MasterAvatarFirstName; 66 String firstname = userProfile.FirstName;
61 String lastname = m_scene.RegionInfo.MasterAvatarLastName; 67 String lastname = userProfile.SurName;
62 68
63 //TODO: Fix the marshalling system to have less copypasta gruntwork 69 //TODO: Fix the marshalling system to have less copypasta gruntwork
64 XmlNode user = factory.CreateNode(XmlNodeType.Element, "user", ""); 70 XmlNode user = factory.CreateNode(XmlNodeType.Element, "user", "");
@@ -113,4 +119,4 @@ namespace OpenSim.Region.DataSnapshot.Providers
113 119
114 #endregion 120 #endregion
115 } 121 }
116} \ No newline at end of file 122}
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 {