aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorOren Hurvitz2012-04-23 18:33:50 +0300
committerJustin Clark-Casey (justincc)2012-04-26 22:41:31 +0100
commitee13d817f128c294dc05bddaa0bc9a643c48fe8d (patch)
tree95075342c5331e7adecd0cf520acb90b46f9a528
parentTweak log messages on local region to region teleport path to help with probl... (diff)
downloadopensim-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.cs9
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 {