SL-18125 Material asset doesn't inherit some "uploads" permissions

meow-7.2.2
Andrey Kleshchev 2022-10-12 11:50:59 +03:00
parent b6e576c7c2
commit 3514ab73bd
1 changed files with 22 additions and 2 deletions

View File

@ -941,7 +941,27 @@ bool LLMaterialEditor::saveIfNeeded()
create_inventory_item(gAgent.getID(), gAgent.getSessionID(), parent, tid, mMaterialName, res_desc,
LLAssetType::AT_MATERIAL, LLInventoryType::IT_MATERIAL, subtype, next_owner_perm,
new LLBoostFuncInventoryCallback([output = buffer](LLUUID const& inv_item_id) {
new LLBoostFuncInventoryCallback([output = buffer](LLUUID const& inv_item_id)
{
LLViewerInventoryItem* item = gInventory.getItem(inv_item_id);
if (item)
{
// create_inventory_item doesn't allow presetting some permissions, fix it now
LLPermissions perm = item->getPermissions();
if (perm.getMaskEveryone() != LLFloaterPerms::getEveryonePerms("Uploads")
|| perm.getMaskGroup() != LLFloaterPerms::getGroupPerms("Uploads"))
{
perm.setMaskEveryone(LLFloaterPerms::getEveryonePerms("Uploads"));
perm.setMaskGroup(LLFloaterPerms::getGroupPerms("Uploads"));
item->setPermissions(perm);
item->updateServer(FALSE);
gInventory.updateItem(item);
gInventory.notifyObservers();
}
}
// from reference in LLSettingsVOBase::createInventoryItem()/updateInventoryItem()
LLResourceUploadInfo::ptr_t uploadInfo =
std::make_shared<LLBufferedAssetUploadInfo>(
@ -966,7 +986,7 @@ bool LLMaterialEditor::saveIfNeeded()
}
LLViewerAssetUpload::EnqueueInventoryUpload(agent_url, uploadInfo);
}
})
})
);
// We do not update floater with uploaded asset yet, so just close it.