diff options
| author | Cosmic Linden <cosmic@lindenlab.com> | 2023-11-03 09:57:19 -0700 | 
|---|---|---|
| committer | Cosmic Linden <cosmic@lindenlab.com> | 2023-11-09 13:54:41 -0800 | 
| commit | 2d69611c470e8ca0f85f6ad5857799ca2536f193 (patch) | |
| tree | 36e40328788f79426cda41ef36416550c5106896 | |
| parent | 711354c2f526421b7cd2918f584731624a9995e5 (diff) | |
SL-20553: Fix save material to inventory not working with new agent-based permissions
| -rw-r--r-- | indra/newview/llmaterialeditor.cpp | 12 | 
1 files changed, 9 insertions, 3 deletions
diff --git a/indra/newview/llmaterialeditor.cpp b/indra/newview/llmaterialeditor.cpp index bae4afb7e6..cc7e69d60c 100644 --- a/indra/newview/llmaterialeditor.cpp +++ b/indra/newview/llmaterialeditor.cpp @@ -1852,6 +1852,10 @@ bool can_use_objects_material(LLSelectedTEGetMatData& func, const std::vector<Pe      llassert(func.mIsOverride);      LLSelectMgr::getInstance()->getSelection()->applyToTEs(&func, true /*first applicable*/); +    if (item_source == ItemSource::AGENT) +    { +        func.mObjectId = LLUUID::null; +    }      LLViewerObject* selected_object = func.mObject;      if (!selected_object)      { @@ -1879,11 +1883,12 @@ bool can_use_objects_material(LLSelectedTEGetMatData& func, const std::vector<Pe          LLAssetIDMatchesWithPerms item_has_perms(func.mMaterialId, ops);          if (item_source == ItemSource::OBJECT)          { -            item_out = selected_object->getInventoryItemByAsset(func.mMaterialId); -            if (item_out && !item_has_perms(nullptr, item_out)) +            LLViewerInventoryItem* item = selected_object->getInventoryItemByAsset(func.mMaterialId); +            if (item && !item_has_perms(nullptr, item))              {                  return false;              } +            item_out = item;          }          else          { @@ -2118,8 +2123,9 @@ void LLMaterialEditor::saveObjectsMaterialAs(const LLGLTFMaterial* render_materi      }      else      { -        if (item_id.notNull()) +        if (item_id.notNull() && object_id.notNull())          { +            llassert(false); // *TODO: Remove this code path if unused              // Copy existing item from object inventory, and create new composite asset on top of it              LLNotificationsUtil::add("SaveMaterialAs", args, payload, boost::bind(&LLMaterialEditor::onCopyObjectsMaterialAsMsgCallback, _1, _2, permissions, object_id, item_id));          }  | 
