aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes
diff options
context:
space:
mode:
authormingchen2008-05-07 17:33:57 +0000
committermingchen2008-05-07 17:33:57 +0000
commit6551f17966975081ac9b9f4c3b19d33e9d2c69a5 (patch)
tree24fee3acb4381334e3e4cdc46712e20d63803839 /OpenSim/Region/Environment/Scenes
parentFrom: Kurt Taylor <krtaylor@us.ibm.com> (diff)
downloadopensim-SC-6551f17966975081ac9b9f4c3b19d33e9d2c69a5.zip
opensim-SC-6551f17966975081ac9b9f4c3b19d33e9d2c69a5.tar.gz
opensim-SC-6551f17966975081ac9b9f4c3b19d33e9d2c69a5.tar.bz2
opensim-SC-6551f17966975081ac9b9f4c3b19d33e9d2c69a5.tar.xz
*Added SceneExternalChecks.cs that is used to manage checking the results of multiple functions that register with the class and return the result (usually true/false) based on those results. This is useful for module wanting to put their opinion in decisions such as 'can the user rez this object?'
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs19
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs7
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneBase.cs6
3 files changed, 22 insertions, 10 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 65e6fd8..b536048 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1267,10 +1267,7 @@ namespace OpenSim.Region.Environment.Scenes
1267 RayStart, RayEnd, RayTargetID, new LLQuaternion(0, 0, 0, 1), 1267 RayStart, RayEnd, RayTargetID, new LLQuaternion(0, 0, 0, 1),
1268 BypassRayCast, bRayEndIsIntersection,true,scale, false); 1268 BypassRayCast, bRayEndIsIntersection,true,scale, false);
1269 1269
1270 if (!Permissions.CanRezObject(remoteClient.AgentId, pos) && !attachment) 1270
1271 {
1272 return null;
1273 }
1274 1271
1275 // Rez object 1272 // Rez object
1276 CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); 1273 CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
@@ -1288,6 +1285,11 @@ namespace OpenSim.Region.Environment.Scenes
1288 { 1285 {
1289 string xmlData = Helpers.FieldToUTF8String(rezAsset.Data); 1286 string xmlData = Helpers.FieldToUTF8String(rezAsset.Data);
1290 SceneObjectGroup group = new SceneObjectGroup(this, m_regionHandle, xmlData); 1287 SceneObjectGroup group = new SceneObjectGroup(this, m_regionHandle, xmlData);
1288 if (!Permissions.CanRezObject(remoteClient.AgentId, pos, group.Children.Count) && !attachment)
1289 {
1290 return null;
1291 }
1292
1291 group.ResetIDs(); 1293 group.ResetIDs();
1292 AddEntity(group); 1294 AddEntity(group);
1293 1295
@@ -1361,10 +1363,6 @@ namespace OpenSim.Region.Environment.Scenes
1361 { 1363 {
1362 LLUUID ownerID = item.OwnerID; 1364 LLUUID ownerID = item.OwnerID;
1363 1365
1364 if (!Permissions.CanRezObject(ownerID, pos))
1365 {
1366 return null;
1367 }
1368 1366
1369 AssetBase rezAsset = AssetCache.GetAsset(item.AssetID, false); 1367 AssetBase rezAsset = AssetCache.GetAsset(item.AssetID, false);
1370 1368
@@ -1372,6 +1370,11 @@ namespace OpenSim.Region.Environment.Scenes
1372 { 1370 {
1373 string xmlData = Helpers.FieldToUTF8String(rezAsset.Data); 1371 string xmlData = Helpers.FieldToUTF8String(rezAsset.Data);
1374 SceneObjectGroup group = new SceneObjectGroup(this, m_regionHandle, xmlData); 1372 SceneObjectGroup group = new SceneObjectGroup(this, m_regionHandle, xmlData);
1373
1374 if (!Permissions.CanRezObject(ownerID, pos, group.Children.Count))
1375 {
1376 return null;
1377 }
1375 group.ResetIDs(); 1378 group.ResetIDs();
1376 AddEntity(group); 1379 AddEntity(group);
1377 1380
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index a875051..72512c7 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -241,6 +241,7 @@ namespace OpenSim.Region.Environment.Scenes
241 m_seeIntoRegionFromNeighbor = SeeIntoRegionFromNeighbor; 241 m_seeIntoRegionFromNeighbor = SeeIntoRegionFromNeighbor;
242 242
243 m_eventManager = new EventManager(); 243 m_eventManager = new EventManager();
244 m_externalChecks = new SceneExternalChecks(this);
244 245
245 //Bind Storage Manager functions to some land manager functions for this scene 246 //Bind Storage Manager functions to some land manager functions for this scene
246 EventManager.OnLandObjectAdded += 247 EventManager.OnLandObjectAdded +=
@@ -829,7 +830,7 @@ namespace OpenSim.Region.Environment.Scenes
829 { 830 {
830 ForEachScenePresence(delegate(ScenePresence presence) { whatToDo(presence.ControllingClient); }); 831 ForEachScenePresence(delegate(ScenePresence presence) { whatToDo(presence.ControllingClient); });
831 } 832 }
832 833
833 /// <summary> 834 /// <summary>
834 /// 835 ///
835 /// </summary> 836 /// </summary>
@@ -1244,7 +1245,7 @@ namespace OpenSim.Region.Environment.Scenes
1244 1245
1245 LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, rot, bypassRaycast, RayEndIsIntersection, true, new LLVector3(0.5f,0.5f,0.5f), false); 1246 LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, rot, bypassRaycast, RayEndIsIntersection, true, new LLVector3(0.5f,0.5f,0.5f), false);
1246 1247
1247 if (Permissions.CanRezObject(ownerID, pos)) 1248 if (Permissions.CanRezObject(ownerID, pos, 1))
1248 { 1249 {
1249 // rez ON the ground, not IN the ground 1250 // rez ON the ground, not IN the ground
1250 pos.Z += 0.25F; 1251 pos.Z += 0.25F;
@@ -3217,5 +3218,7 @@ namespace OpenSim.Region.Environment.Scenes
3217 return visualParams; 3218 return visualParams;
3218 } 3219 }
3219 #endregion 3220 #endregion
3221
3222
3220 } 3223 }
3221} 3224}
diff --git a/OpenSim/Region/Environment/Scenes/SceneBase.cs b/OpenSim/Region/Environment/Scenes/SceneBase.cs
index d9dc1da..dc67436 100644
--- a/OpenSim/Region/Environment/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneBase.cs
@@ -71,6 +71,12 @@ namespace OpenSim.Region.Environment.Scenes
71 get { return m_eventManager; } 71 get { return m_eventManager; }
72 } 72 }
73 73
74
75 protected SceneExternalChecks m_externalChecks;
76 public SceneExternalChecks ExternalChecks
77 {
78 get { return m_externalChecks; }
79 }
74 80
75 protected string m_datastore; 81 protected string m_datastore;
76 82