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.
integration
Oren Hurvitz 2012-04-23 18:33:50 +03:00 committed by Justin Clark-Casey (justincc)
parent cb6791fb30
commit ee13d817f1
1 changed files with 7 additions and 2 deletions

View File

@ -297,10 +297,15 @@ namespace OpenSim.Region.CoreModules.World.Archiver
if (checkPermissions.Contains("T") && !canTransfer)
partPermitted = false;
// If the user is the Creator of the object then it can always be included in the OAR
bool creator = (obj.CreatorID.Guid == user.Guid);
if (creator)
partPermitted = true;
//string name = (objGroup.PrimCount == 1) ? objGroup.Name : string.Format("{0} ({1}/{2})", obj.Name, primNumber, objGroup.PrimCount);
//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}",
//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}",
// name, obj.BaseMask, obj.OwnerMask, obj.EveryoneMask,
// permissionClass, checkPermissions, canCopy, canTransfer, permitted);
// permissionClass, checkPermissions, canCopy, canTransfer, creator, partPermitted);
if (!partPermitted)
{