• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-2815
Type: New Feature New Feature
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Haravikk Mistral
Votes: 9
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

'Modifiable contents' flag

Created: 11/May/07 10:41 AM   Updated: 07/Oct/09 12:33 AM
Return to search
Component/s: Inventory, Permissions
Affects Version/s: 1.21.0 Server, 1.22.1 Server, 1.22.2 Server, 1.22.3 Server, 1.22.4 Server, 1.23.4 Server, 1.24 Server, 1.25 Server, 1.26 Server, 1.27 Server, 1.30 Server
Fix Version/s: None

File Attachments: None
Image Attachments:

1. modifyContent.png
(26 kB)
Issue Links:
Relates


 Description  « Hide
As noted in VWR-179, the current behaviour for modifiable objects within an unmodifiable parent is completely contrary to the unix-style permissions SL is using. However, Phoenix Linden has said that it will not be fixed.

Thus I am proposing the simplest alternative:
We add a new permission. This option is 'Modify Contents' and may be enabled/disabled for all objects.

The premise is simple, if an object is modifiable then the creator may not wish it's contents (scripts etc.) to be modifiable, either by allowing the user to remove them, or to add potentially malicious scripts to the object, while allowing some items to be readable (e.g notecards). In this case you check 'Modify' permission, and un-check the 'Modify contents' permission. This allows the creation of items that can be re-coloured and re-textured without it being possible to easily damage the scripts within it.
The other case is an unmodifiable object whose creator WANTS the contents to be modifiable. In this case you un-check the 'Modify' permission and check the 'Modify contents' permission. This allows the user to modify any item within the object with sufficient permissions (ie a no-modify script inside an object with modify-contents is still unmodifiable). This allows for the creation of objects that cannot be modified by the user, except by configuring notecards which are used by the scripts within the object.

As pointed out in the comments by Argent to the previous bug-report; there are spare bits that could be used for this simple permission, and it really shouldn't have much needed to do it. If someone tries to modify the contents of an object, then instead of going by the 'Modify' permission, you go by the 'Modify contents' permission. In order to prevent damage to existing content, the 'Modify content' option will default to off on all objects which do not possess the 'Modify' permission, and will default to on for objects that are modifiable.
This behaviour is encouraged anyway, ie; when a user clicks 'Modify' then 'Modify contents' is selected too, but may be unchecked separately if desired. Similarly, if the user unchecks 'Modify' then 'Modify contents' is unchecked too, but can be checked again if the user wishes it.

This is an extremely simple solution to an incredibly aggravating and annoying fault with the permissions system.

I've attached an image with a little table to hopefully clarify any confusion over the description of this feature.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Haravikk Mistral added a comment - 11/May/07 10:44 AM
As an aside. This also opens up the ability to rename items that cannot otherwise be modified. ie; if I purchase a script that has 'Modify' set, but not 'Modify contents' then I may rename it, but not edit the script contents themselves. However, this is of less importance, and if need be can be ignored to focus on objects only, as these are the only items that can contain their own inventory.

Melanie Milland added a comment - 13/Jun/07 04:38 PM
The new "Modify contents" flag should still not prevent "Copy to inventory" from allowing to rip apart an object - see the fair use discussion in another bug.

Otherwise this is a good start and has my vote. I would like to sell objects with moddable contents, yet prevent the buyer from messing with the design, or simply destroying the object's visual aspect, then wanting it fixed!

I sell beds, and I want the user to be able to add things to them (aftermarket plugins i sell), want them to be able to edit some notecards (configuration ones).

This would allow it.


Haravikk Mistral added a comment - 24/Aug/07 06:51 AM
Can you link me to the bug/discussion?

However, this flag is only related to modification, it occurs to me that there could be one for copying as well, but basically even with modify contents set to false, you can still copy things out of the object, you just can't remove the original. This allows open-source scripts that were correctly set to copy/mod to still be 'fairly' used within an object. For example;

In the case of one of your beds, you might set-up a vendor in a low-prim area where you can't permanently rez copies to try. You could however have a vendor that passes out demo objects. These demo objects may use an open-source "try-before-you-buy" script which lets the users rez a full-featured bed that will destroy itself after say 10 minutes. This open-source script would be placed in your object and would have full-perms set, however the demo-object itself has modifiable contents set to false.

If you followed that wordy example then you now have an object with an open-source script inside it. The script is full-perms as open-source scripts should be according to any license. Your object however does not permit the user to modify its contents. What does this mean? All it means is that I can't rename, delete or remove the script (or anything else in the object). However, as the script is copyable, I can still copy it into my inventory, and modify that copy to my heart's content.

Hopefully that clarifies the case of an object with unmodifiable contents from a 'fair-use' standpoint.

It does however show inflexibility in the notecard point which is one I'm interested in too. I'm now thinking (referring to my table) in terms of whether a modifiable child, in a parent object that has modify contents OFF, should be modifiable if it has its own modifiable contents flag set. For example:
I've a box with a notecard in it.
The box is unmodifiable, as are its contents.
The notecard is modifiable, as are its contents.

As proposed this feature actually would NOT allow you to edit the notecard; it's possible you could open it up, but when you went to save it it would be seen as a modification of the box and would cause an error. I'm thinking now that the terms of modifiable contents may need to change ie -
modification of an object's contents is seen as:

  • Attempting to remove/delete an item in the object
  • Attempting to rename an item in the object (this could break scripts which this feature is intended for)
    It does not however apply to saving a modifiable object within it

In essence; the notecard's permissions have precedence over their own contents, and the ability to copy the notecard from the unmodifiable box.
This allows for the case whereby an object contains a number of unmodifiable scripts, with a modifiable notecard. By having the notecard sets /it's/ contents to modifiable, then it can still be edited, but the object cannot be damaged, destroyed or made insecure by removing any of the scripts.

This however raises further issues that an open-source-script you happen to be using could be edited by an end user. This is not desirable as they could cause untold damage in this way.

This has been a wordy comment, but hopefully it makes some sense. I'll maybe add a revised table to show what I mean when I have the time. Or may require being combined with the 'removable' flag Argent Stonecutter suggested. With that it would be possible to have an object's contents modifiable, but a core of scripts un-removable, thus you can add things but cannot break the object. This has it's own pitfalls however.

Perhaps modifiable contents should not apply to scripts within the object. ie they can always change the contents of the object just as they can change textures etc. This was they can enable allowed drop for things to be added, and process these.


Irischka Hotshot added a comment - 07/Oct/09 12:33 AM
Has my vote at all! cause 2009 its still not fixed!