aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/Handlers/Simulation
diff options
context:
space:
mode:
authorOren Hurvitz2014-05-18 19:45:27 +0300
committerOren Hurvitz2014-05-19 11:19:11 +0100
commit47b84875fd2b9f01140288a2695c33f5ef4466c0 (patch)
treedd22882762b4e4ec411de5c37d98fd1a394835b2 /OpenSim/Server/Handlers/Simulation
parentLog the user when an inventory operation is blocked because the item/folder i... (diff)
downloadopensim-SC-47b84875fd2b9f01140288a2695c33f5ef4466c0.zip
opensim-SC-47b84875fd2b9f01140288a2695c33f5ef4466c0.tar.gz
opensim-SC-47b84875fd2b9f01140288a2695c33f5ef4466c0.tar.bz2
opensim-SC-47b84875fd2b9f01140288a2695c33f5ef4466c0.tar.xz
Tell QueryAccess explicitly whether the user is coming in via Teleport or Cross, because the permission checks are different.
Previously we used a heuristic of checking if the entry position is 0 to differentiate between Teleport and Cross, but that doesn't work anymore since we've started providing the precise entry position for cross, too. That's required in order to ensure that the user is allowed to enter the parcel that he's walking into.
Diffstat (limited to 'OpenSim/Server/Handlers/Simulation')
-rw-r--r--OpenSim/Server/Handlers/Simulation/AgentHandlers.cs6
1 files changed, 5 insertions, 1 deletions
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
index 06392f7..7291931 100644
--- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
+++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
@@ -132,6 +132,10 @@ namespace OpenSim.Server.Handlers.Simulation
132 // m_log.DebugFormat("[AGENT HANDLER]: Received QUERYACCESS with {0}", (string)request["body"]); 132 // m_log.DebugFormat("[AGENT HANDLER]: Received QUERYACCESS with {0}", (string)request["body"]);
133 OSDMap args = Utils.GetOSDMap((string)request["body"]); 133 OSDMap args = Utils.GetOSDMap((string)request["body"]);
134 134
135 bool viaTeleport = true;
136 if (args.ContainsKey("viaTeleport"))
137 viaTeleport = args["viaTeleport"].AsBoolean();
138
135 Vector3 position = Vector3.Zero; 139 Vector3 position = Vector3.Zero;
136 if (args.ContainsKey("position")) 140 if (args.ContainsKey("position"))
137 position = Vector3.Parse(args["position"].AsString()); 141 position = Vector3.Parse(args["position"].AsString());
@@ -145,7 +149,7 @@ namespace OpenSim.Server.Handlers.Simulation
145 149
146 string reason; 150 string reason;
147 string version; 151 string version;
148 bool result = m_SimulationService.QueryAccess(destination, agentID, agentHomeURI, position, out version, out reason); 152 bool result = m_SimulationService.QueryAccess(destination, agentID, agentHomeURI, viaTeleport, position, out version, out reason);
149 153
150 responsedata["int_response_code"] = HttpStatusCode.OK; 154 responsedata["int_response_code"] = HttpStatusCode.OK;
151 155