diff options
author | Justin Clark-Casey (justincc) | 2013-08-27 00:35:33 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-08-27 00:35:33 +0100 |
commit | 2e7f7c41a752f59775dd8353c84725d8f5a6003c (patch) | |
tree | 3535e629fa2e1dde84d9d02a6b0262199b71a23b | |
parent | Potential fix for access control bug on login introduced with SeeIntoRegion c... (diff) | |
download | opensim-SC_OLD-2e7f7c41a752f59775dd8353c84725d8f5a6003c.zip opensim-SC_OLD-2e7f7c41a752f59775dd8353c84725d8f5a6003c.tar.gz opensim-SC_OLD-2e7f7c41a752f59775dd8353c84725d8f5a6003c.tar.bz2 opensim-SC_OLD-2e7f7c41a752f59775dd8353c84725d8f5a6003c.tar.xz |
Also check user authorization if looking to upgrade from a child to a root agent.
Relevant if a child agent has been allowed into the region which should not be upgraded to a root agent.
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 9695716..e0c96c6 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -3855,6 +3855,19 @@ namespace OpenSim.Region.Framework.Scenes | |||
3855 | // Let the SP know how we got here. This has a lot of interesting | 3855 | // Let the SP know how we got here. This has a lot of interesting |
3856 | // uses down the line. | 3856 | // uses down the line. |
3857 | sp.TeleportFlags = (TPFlags)teleportFlags; | 3857 | sp.TeleportFlags = (TPFlags)teleportFlags; |
3858 | |||
3859 | // We must carry out a further authorization check if there's an | ||
3860 | // attempt to make a child agent into a root agent, since SeeIntoRegion may have allowed a child | ||
3861 | // agent to login to a region where a full avatar would not be allowed. | ||
3862 | // | ||
3863 | // We determine whether this is a CreateAgent for a future non-child agent by inspecting | ||
3864 | // TeleportFlags, which will be default for a child connection. This relies on input from the source | ||
3865 | // region. | ||
3866 | if (sp.TeleportFlags != TPFlags.Default) | ||
3867 | { | ||
3868 | if (!AuthorizeUser(acd, false, out reason)) | ||
3869 | return false; | ||
3870 | } | ||
3858 | 3871 | ||
3859 | if (sp.IsChildAgent) | 3872 | if (sp.IsChildAgent) |
3860 | { | 3873 | { |