diff options
-rw-r--r-- | OpenSim/Framework/Communications/LoginService.cs | 5 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | 11 |
3 files changed, 17 insertions, 1 deletions
diff --git a/OpenSim/Framework/Communications/LoginService.cs b/OpenSim/Framework/Communications/LoginService.cs index 118668c..9177704 100644 --- a/OpenSim/Framework/Communications/LoginService.cs +++ b/OpenSim/Framework/Communications/LoginService.cs | |||
@@ -96,10 +96,15 @@ namespace OpenSim.Framework.UserManagement | |||
96 | else | 96 | else |
97 | { | 97 | { |
98 | // If we already have a session... | 98 | // If we already have a session... |
99 | |||
99 | if (userProfile.currentAgent != null && userProfile.currentAgent.agentOnline) | 100 | if (userProfile.currentAgent != null && userProfile.currentAgent.agentOnline) |
100 | { | 101 | { |
102 | userProfile.currentAgent.agentOnline = false; | ||
103 | m_userManager.CommitAgent(ref userProfile); | ||
104 | |||
101 | // Reject the login | 105 | // Reject the login |
102 | return logResponse.CreateAlreadyLoggedInResponse(); | 106 | return logResponse.CreateAlreadyLoggedInResponse(); |
107 | |||
103 | } | 108 | } |
104 | // Otherwise... | 109 | // Otherwise... |
105 | // Create a new agent session | 110 | // Create a new agent session |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 7d09c9a..cc0b8ba 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -1487,7 +1487,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1487 | } | 1487 | } |
1488 | } | 1488 | } |
1489 | } | 1489 | } |
1490 | 1490 | ||
1491 | /// <summary> | 1491 | /// <summary> |
1492 | /// | 1492 | /// |
1493 | /// </summary> | 1493 | /// </summary> |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 843ae3d..c94bfd9 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -1201,6 +1201,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
1201 | } | 1201 | } |
1202 | break; | 1202 | break; |
1203 | } | 1203 | } |
1204 | else | ||
1205 | { | ||
1206 | // If you can't edit it, send the base permissions minus the flag to edit | ||
1207 | if (!ParentGroup.m_scene.PermissionsMngr.CanEditObject(remoteClient.AgentId, this.ParentGroup.UUID)) | ||
1208 | { | ||
1209 | clientFlags = ObjectFlags &= ~(uint)LLObject.ObjectFlags.ObjectModify; | ||
1210 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.ObjectMove; | ||
1211 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.AllowInventoryDrop; | ||
1212 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; | ||
1213 | } | ||
1214 | } | ||
1204 | } | 1215 | } |
1205 | 1216 | ||
1206 | byte[] color = new byte[] { m_color.R, m_color.G, m_color.B, m_color.A }; | 1217 | byte[] color = new byte[] { m_color.R, m_color.G, m_color.B, m_color.A }; |