summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorRider Linden <rider@lindenlab.com>2026-08-26 10:38:17 -0700
committerRider Linden <rider@lindenlab.com>2026-08-26 10:38:17 -0700
commitaf70716e4e7dc43434c1859fa6d96e7dea5ffb9b (patch)
tree63e716c4e12ab73e7ee52c0c4ddab23e550da908 /indra
parent9aa7feee4eae4fbc34d7e777c94be2e024f6c053 (diff)
Issue #6182: Include object permissions for both root object and linked prims.
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llpublishedobjectmgr.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/indra/newview/llpublishedobjectmgr.cpp b/indra/newview/llpublishedobjectmgr.cpp
index 1eb000d98f..5c9c080b5d 100644
--- a/indra/newview/llpublishedobjectmgr.cpp
+++ b/indra/newview/llpublishedobjectmgr.cpp
@@ -729,6 +729,11 @@ LLSD LLPublishedObjectMgr::buildPublishedObjectLLSD(LLViewerObject* root) const
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_SCRIPTDEV;
LLSD pub;
+ const LLPermissions& root_perms = root->getPermissions();
+ LLSD root_perm_entry;
+ root_perm_entry["owner"] = static_cast<S32>(root_perms.getMaskOwner());
+ root_perm_entry["next_owner"] = static_cast<S32>(root_perms.getMaskNextOwner());
+ pub["permissions"] = root_perm_entry;
pub["object_id"] = root->getID();
pub["object_name"] = get_prim_name(root);
pub["object_description"] = nv_string(root, "Desc");
@@ -753,6 +758,11 @@ LLSD LLPublishedObjectMgr::buildPublishedObjectLLSD(LLViewerObject* root) const
link["link_number"] = link_number++;
link["link_name"] = get_prim_name(child);
link["link_description"] = nv_string(child, "Desc");
+ const LLPermissions& child_perms = child->getPermissions();
+ LLSD child_perm_entry;
+ child_perm_entry["owner"] = static_cast<S32>(child_perms.getMaskOwner());
+ child_perm_entry["next_owner"] = static_cast<S32>(child_perms.getMaskNextOwner());
+ link["permissions"] = child_perm_entry;
link["inventory"] = buildPrimInventoryLLSD(child);
linked_objects.append(link);
}
@@ -778,6 +788,11 @@ LLSD LLPublishedObjectMgr::buildObjectListLLSD() const
}
LLSD pub;
+ const LLPermissions& root_perms = root->getPermissions();
+ LLSD root_perm_entry;
+ root_perm_entry["owner"] = static_cast<S32>(root_perms.getMaskOwner());
+ root_perm_entry["next_owner"] = static_cast<S32>(root_perms.getMaskNextOwner());
+ pub["permissions"] = root_perm_entry;
pub["object_id"] = info.mObjectID;
pub["object_name"] = info.mObjectName;
pub["object_description"] = info.mObjectDescription;
@@ -808,6 +823,11 @@ LLSD LLPublishedObjectMgr::buildObjectListLLSD() const
link["link_number"] = prim_info.mLinkNumber;
link["link_name"] = prim_info.mPrimName;
link["link_description"] = prim_info.mPrimDescription;
+ const LLPermissions& child_perms = child->getPermissions();
+ LLSD child_perm_entry;
+ child_perm_entry["owner"] = static_cast<S32>(child_perms.getMaskOwner());
+ child_perm_entry["next_owner"] = static_cast<S32>(child_perms.getMaskNextOwner());
+ link["permissions"] = child_perm_entry;
link["inventory"] = buildPrimInventoryLLSD(child);
linked_objects.append(link);
}