diff options
author | Justin Clark-Casey (justincc) | 2012-02-10 02:13:15 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-02-10 02:13:15 +0000 |
commit | ddca5347c31aa9547395ec918b5b5dcd2e498be7 (patch) | |
tree | 947b282022c08cc368d05e5a25827a21bc2bd9bc /OpenSim/Region/ClientStack/Linden | |
parent | Fix another Torture test build break on Windows. (diff) | |
download | opensim-SC_OLD-ddca5347c31aa9547395ec918b5b5dcd2e498be7.zip opensim-SC_OLD-ddca5347c31aa9547395ec918b5b5dcd2e498be7.tar.gz opensim-SC_OLD-ddca5347c31aa9547395ec918b5b5dcd2e498be7.tar.bz2 opensim-SC_OLD-ddca5347c31aa9547395ec918b5b5dcd2e498be7.tar.xz |
When an asset is uploaded (e.g. a mesh) set individual copy/move/transfer permissions, not PermissionMask.All
Setting PermissionMask.All will cause next permissions to replace current permissions when the object is rezzed, since bit 4 will be set.
This is not correct behaviour for a freshly uploaded mesh. Freshly rezzed in-world prims also do not have bit 4 set (don't yet know exactly what this is).
Should resolve http://opensimulator.org/mantis/view.php?id=5651
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
3 files changed, 14 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs index cf0c28b..be699db 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | |||
@@ -422,7 +422,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
422 | string assetType) | 422 | string assetType) |
423 | { | 423 | { |
424 | m_log.DebugFormat( | 424 | m_log.DebugFormat( |
425 | "Uploaded asset {0} for inventory item {1}, inv type {2}, asset type {3}", | 425 | "[BUNCH OF CAPS]: Uploaded asset {0} for inventory item {1}, inv type {2}, asset type {3}", |
426 | assetID, inventoryItem, inventoryType, assetType); | 426 | assetID, inventoryItem, inventoryType, assetType); |
427 | 427 | ||
428 | sbyte assType = 0; | 428 | sbyte assType = 0; |
@@ -625,7 +625,12 @@ namespace OpenSim.Region.ClientStack.Linden | |||
625 | item.AssetType = assType; | 625 | item.AssetType = assType; |
626 | item.InvType = inType; | 626 | item.InvType = inType; |
627 | item.Folder = parentFolder; | 627 | item.Folder = parentFolder; |
628 | item.CurrentPermissions = (uint)PermissionMask.All; | 628 | |
629 | // If we set PermissionMask.All then when we rez the item the next permissions will replace the current | ||
630 | // (owner) permissions. This becomes a problem if next permissions are changed. | ||
631 | item.CurrentPermissions | ||
632 | = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer); | ||
633 | |||
629 | item.BasePermissions = (uint)PermissionMask.All; | 634 | item.BasePermissions = (uint)PermissionMask.All; |
630 | item.EveryOnePermissions = 0; | 635 | item.EveryOnePermissions = 0; |
631 | item.NextPermissions = (uint)PermissionMask.All; | 636 | item.NextPermissions = (uint)PermissionMask.All; |
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs index aed03b3..1117f2a 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs | |||
@@ -50,8 +50,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
50 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] | 50 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule")] |
51 | public class NewFileAgentInventoryVariablePriceModule : INonSharedRegionModule | 51 | public class NewFileAgentInventoryVariablePriceModule : INonSharedRegionModule |
52 | { | 52 | { |
53 | // private static readonly ILog m_log = | 53 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
54 | // LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
55 | 54 | ||
56 | private Scene m_scene; | 55 | private Scene m_scene; |
57 | // private IAssetService m_assetService; | 56 | // private IAssetService m_assetService; |
@@ -210,6 +209,9 @@ namespace OpenSim.Region.ClientStack.Linden | |||
210 | UUID inventoryItem, UUID parentFolder, byte[] data, string inventoryType, | 209 | UUID inventoryItem, UUID parentFolder, byte[] data, string inventoryType, |
211 | string assetType,UUID AgentID) | 210 | string assetType,UUID AgentID) |
212 | { | 211 | { |
212 | // m_log.DebugFormat( | ||
213 | // "[NEW FILE AGENT INVENTORY VARIABLE PRICE MODULE]: Upload complete for {0}", inventoryItem); | ||
214 | |||
213 | sbyte assType = 0; | 215 | sbyte assType = 0; |
214 | sbyte inType = 0; | 216 | sbyte inType = 0; |
215 | 217 | ||
@@ -259,13 +261,13 @@ namespace OpenSim.Region.ClientStack.Linden | |||
259 | item.AssetType = assType; | 261 | item.AssetType = assType; |
260 | item.InvType = inType; | 262 | item.InvType = inType; |
261 | item.Folder = parentFolder; | 263 | item.Folder = parentFolder; |
262 | item.CurrentPermissions = (uint)PermissionMask.All; | 264 | item.CurrentPermissions |
265 | = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer); | ||
263 | item.BasePermissions = (uint)PermissionMask.All; | 266 | item.BasePermissions = (uint)PermissionMask.All; |
264 | item.EveryOnePermissions = 0; | 267 | item.EveryOnePermissions = 0; |
265 | item.NextPermissions = (uint)PermissionMask.All; | 268 | item.NextPermissions = (uint)PermissionMask.All; |
266 | item.CreationDate = Util.UnixTimeSinceEpoch(); | 269 | item.CreationDate = Util.UnixTimeSinceEpoch(); |
267 | m_scene.AddInventoryItem(item); | 270 | m_scene.AddInventoryItem(item); |
268 | |||
269 | } | 271 | } |
270 | } | 272 | } |
271 | } | 273 | } |
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/ObjectCaps/UploadObjectAssetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/ObjectCaps/UploadObjectAssetModule.cs index e4bacd4..7a3d97e 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/ObjectCaps/UploadObjectAssetModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/ObjectCaps/UploadObjectAssetModule.cs | |||
@@ -339,7 +339,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
339 | m_scene.AddSceneObject(grp); | 339 | m_scene.AddSceneObject(grp); |
340 | grp.AbsolutePosition = obj.Position; | 340 | grp.AbsolutePosition = obj.Position; |
341 | } | 341 | } |
342 | 342 | ||
343 | allparts[i] = grp; | 343 | allparts[i] = grp; |
344 | } | 344 | } |
345 | 345 | ||