diff options
Diffstat (limited to 'indra/llinventory')
-rw-r--r-- | indra/llinventory/llinventory.h | 6 | ||||
-rw-r--r-- | indra/llinventory/llpermissions.cpp | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/indra/llinventory/llinventory.h b/indra/llinventory/llinventory.h index 8a6fdfd0ad..e19604c9f0 100644 --- a/indra/llinventory/llinventory.h +++ b/indra/llinventory/llinventory.h @@ -364,6 +364,12 @@ struct SetItemOwnerAndGroup LLPermissions perm = item->getPermissions(); bool is_atomic = (LLAssetType::AT_OBJECT == item->getType()) ? false : true; perm.setOwnerAndGroup(mAuthorityID, mOwnerID, mGroupID, is_atomic); + // If no owner id is set, this is equivalent to a deed action. + // Clear 'share with group'. + if (mOwnerID.isNull()) + { + perm.setMaskGroup(PERM_NONE); + } item->setPermissions(perm); } }; diff --git a/indra/llinventory/llpermissions.cpp b/indra/llinventory/llpermissions.cpp index ac106eb09c..e55163f30d 100644 --- a/indra/llinventory/llpermissions.cpp +++ b/indra/llinventory/llpermissions.cpp @@ -264,6 +264,7 @@ BOOL LLPermissions::deedToGroup(const LLUUID& agent, const LLUUID& group) mOwner.setNull(); } mMaskBase = mMaskNextOwner; + mMaskGroup = PERM_NONE; mGroup = group; mIsGroupOwned = true; fixFairUse(); |