aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.Inventory.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs30
1 files changed, 28 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 6d7559e..5a5307c 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -347,6 +347,12 @@ namespace OpenSim.Region.Framework.Scenes
347 { 347 {
348 item.Name = itemUpd.Name; 348 item.Name = itemUpd.Name;
349 item.Description = itemUpd.Description; 349 item.Description = itemUpd.Description;
350
351// m_log.DebugFormat(
352// "[USER INVENTORY]: itemUpd {0} {1} {2} {3}, item {4} {5} {6} {7}",
353// itemUpd.NextPermissions, itemUpd.GroupPermissions, itemUpd.EveryOnePermissions, item.Flags,
354// item.NextPermissions, item.GroupPermissions, item.EveryOnePermissions, item.CurrentPermissions);
355
350 if (item.NextPermissions != (itemUpd.NextPermissions & item.BasePermissions)) 356 if (item.NextPermissions != (itemUpd.NextPermissions & item.BasePermissions))
351 item.Flags |= (uint)InventoryItemFlags.ObjectOverwriteNextOwner; 357 item.Flags |= (uint)InventoryItemFlags.ObjectOverwriteNextOwner;
352 item.NextPermissions = itemUpd.NextPermissions & item.BasePermissions; 358 item.NextPermissions = itemUpd.NextPermissions & item.BasePermissions;
@@ -355,6 +361,9 @@ namespace OpenSim.Region.Framework.Scenes
355 item.EveryOnePermissions = itemUpd.EveryOnePermissions & item.BasePermissions; 361 item.EveryOnePermissions = itemUpd.EveryOnePermissions & item.BasePermissions;
356 if (item.GroupPermissions != (itemUpd.GroupPermissions & item.BasePermissions)) 362 if (item.GroupPermissions != (itemUpd.GroupPermissions & item.BasePermissions))
357 item.Flags |= (uint)InventoryItemFlags.ObjectOverwriteGroup; 363 item.Flags |= (uint)InventoryItemFlags.ObjectOverwriteGroup;
364
365// m_log.DebugFormat("[USER INVENTORY]: item.Flags {0}", item.Flags);
366
358 item.GroupPermissions = itemUpd.GroupPermissions & item.BasePermissions; 367 item.GroupPermissions = itemUpd.GroupPermissions & item.BasePermissions;
359 item.GroupID = itemUpd.GroupID; 368 item.GroupID = itemUpd.GroupID;
360 item.GroupOwned = itemUpd.GroupOwned; 369 item.GroupOwned = itemUpd.GroupOwned;
@@ -2170,8 +2179,25 @@ namespace OpenSim.Region.Framework.Scenes
2170 m_sceneGraph.DelinkObjects(parts); 2179 m_sceneGraph.DelinkObjects(parts);
2171 } 2180 }
2172 2181
2182 /// <summary>
2183 /// Link the scene objects containing the indicated parts to a root object.
2184 /// </summary>
2185 /// <param name="client"></param>
2186 /// <param name="parentPrimId">A root prim id of the object which will be the root prim of the resulting linkset.</param>
2187 /// <param name="childPrimIds">A list of child prims for the objects that should be linked in.</param>
2173 public void LinkObjects(IClientAPI client, uint parentPrimId, List<uint> childPrimIds) 2188 public void LinkObjects(IClientAPI client, uint parentPrimId, List<uint> childPrimIds)
2174 { 2189 {
2190 LinkObjects(client.AgentId, parentPrimId, childPrimIds);
2191 }
2192
2193 /// <summary>
2194 /// Link the scene objects containing the indicated parts to a root object.
2195 /// </summary>
2196 /// <param name="agentId">The ID of the user linking.</param>
2197 /// <param name="parentPrimId">A root prim id of the object which will be the root prim of the resulting linkset.</param>
2198 /// <param name="childPrimIds">A list of child prims for the objects that should be linked in.</param>
2199 public void LinkObjects(UUID agentId, uint parentPrimId, List<uint> childPrimIds)
2200 {
2175 List<UUID> owners = new List<UUID>(); 2201 List<UUID> owners = new List<UUID>();
2176 2202
2177 List<SceneObjectPart> children = new List<SceneObjectPart>(); 2203 List<SceneObjectPart> children = new List<SceneObjectPart>();
@@ -2183,7 +2209,7 @@ namespace OpenSim.Region.Framework.Scenes
2183 return; 2209 return;
2184 } 2210 }
2185 2211
2186 if (!Permissions.CanLinkObject(client.AgentId, root.ParentGroup.RootPart.UUID)) 2212 if (!Permissions.CanLinkObject(agentId, root.ParentGroup.RootPart.UUID))
2187 { 2213 {
2188 m_log.DebugFormat("[LINK]: Refusing link. No permissions on root prim"); 2214 m_log.DebugFormat("[LINK]: Refusing link. No permissions on root prim");
2189 return; 2215 return;
@@ -2199,7 +2225,7 @@ namespace OpenSim.Region.Framework.Scenes
2199 if (!owners.Contains(part.OwnerID)) 2225 if (!owners.Contains(part.OwnerID))
2200 owners.Add(part.OwnerID); 2226 owners.Add(part.OwnerID);
2201 2227
2202 if (Permissions.CanLinkObject(client.AgentId, part.ParentGroup.RootPart.UUID)) 2228 if (Permissions.CanLinkObject(agentId, part.ParentGroup.RootPart.UUID))
2203 children.Add(part); 2229 children.Add(part);
2204 } 2230 }
2205 2231