diff options
author | Oren Hurvitz | 2012-04-23 18:33:50 +0300 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-04-26 22:41:31 +0100 |
commit | ee13d817f128c294dc05bddaa0bc9a643c48fe8d (patch) | |
tree | 95075342c5331e7adecd0cf520acb90b46f9a528 | |
parent | Tweak log messages on local region to region teleport path to help with probl... (diff) | |
download | opensim-SC_OLD-ee13d817f128c294dc05bddaa0bc9a643c48fe8d.zip opensim-SC_OLD-ee13d817f128c294dc05bddaa0bc9a643c48fe8d.tar.gz opensim-SC_OLD-ee13d817f128c294dc05bddaa0bc9a643c48fe8d.tar.bz2 opensim-SC_OLD-ee13d817f128c294dc05bddaa0bc9a643c48fe8d.tar.xz |
When creating an OAR, objects where the user is the Creator are always included, regardless of their permissions.
The purpose of the permission checks is to prevent the unauthorized copying of assets, but users can always copy assets that they created.
-rw-r--r-- | OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs index 4d459bf..ab3cc41 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs | |||
@@ -297,10 +297,15 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
297 | if (checkPermissions.Contains("T") && !canTransfer) | 297 | if (checkPermissions.Contains("T") && !canTransfer) |
298 | partPermitted = false; | 298 | partPermitted = false; |
299 | 299 | ||
300 | // If the user is the Creator of the object then it can always be included in the OAR | ||
301 | bool creator = (obj.CreatorID.Guid == user.Guid); | ||
302 | if (creator) | ||
303 | partPermitted = true; | ||
304 | |||
300 | //string name = (objGroup.PrimCount == 1) ? objGroup.Name : string.Format("{0} ({1}/{2})", obj.Name, primNumber, objGroup.PrimCount); | 305 | //string name = (objGroup.PrimCount == 1) ? objGroup.Name : string.Format("{0} ({1}/{2})", obj.Name, primNumber, objGroup.PrimCount); |
301 | //m_log.DebugFormat("[ARCHIVER]: Object permissions: {0}: Base={1:X4}, Owner={2:X4}, Everyone={3:X4}, permissionClass={4}, checkPermissions={5}, canCopy={6}, canTransfer={7}, permitted={8}", | 306 | //m_log.DebugFormat("[ARCHIVER]: Object permissions: {0}: Base={1:X4}, Owner={2:X4}, Everyone={3:X4}, permissionClass={4}, checkPermissions={5}, canCopy={6}, canTransfer={7}, creator={8}, permitted={9}", |
302 | // name, obj.BaseMask, obj.OwnerMask, obj.EveryoneMask, | 307 | // name, obj.BaseMask, obj.OwnerMask, obj.EveryoneMask, |
303 | // permissionClass, checkPermissions, canCopy, canTransfer, permitted); | 308 | // permissionClass, checkPermissions, canCopy, canTransfer, creator, partPermitted); |
304 | 309 | ||
305 | if (!partPermitted) | 310 | if (!partPermitted) |
306 | { | 311 | { |