summaryrefslogtreecommitdiff
path: root/indra/llinventory
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llinventory')
-rw-r--r--indra/llinventory/llinventory.h6
-rw-r--r--indra/llinventory/llpermissions.cpp1
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();