summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelobject.cpp')
-rw-r--r--indra/newview/llpanelobject.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp
index 56aea7db5e..01fa9cc074 100644
--- a/indra/newview/llpanelobject.cpp
+++ b/indra/newview/llpanelobject.cpp
@@ -2449,7 +2449,7 @@ bool LLPanelObject::canCopyTexture(LLUUID image_id)
{
// User is allowed to copy a texture if:
// library asset or default texture,
- // or full perm asset exists in user's inventory
+ // or copy perm asset exists in user's inventory
// Library asset or default texture
if (gInventory.isObjectDescendentOf(image_id, gInventory.getLibraryRootFolderID())
@@ -2461,7 +2461,7 @@ bool LLPanelObject::canCopyTexture(LLUUID image_id)
return true;
}
- // Search for a full perm asset
+ // Search for a copy perm asset
LLViewerInventoryCategory::cat_array_t cats;
LLViewerInventoryItem::item_array_t items;
LLAssetIDMatches asset_id_matches(image_id);
@@ -2475,9 +2475,15 @@ bool LLPanelObject::canCopyTexture(LLUUID image_id)
for (S32 i = 0; i < items.size(); i++)
{
LLViewerInventoryItem* itemp = items[i];
- if (itemp->getIsFullPerm())
+ if (itemp)
{
- return true;
+ LLPermissions item_permissions = itemp->getPermissions();
+ if (item_permissions.allowOperationBy(PERM_COPY,
+ gAgent.getID(),
+ gAgent.getGroupID()))
+ {
+ return true;
+ }
}
}
}