|
|
|
Considering that permissions are a full 32bit mask, you suggestion to mooch bits from the flag field is not a good idea. Your solution just doesn't scale. A better solution is to properly support permissions.
Probably, yes.
Honestly, I don't care whether we reuse the flags field or introduce a new field. I have attached to VWR-8049 a new patch named "inworld.patch" that takes Strife's criticism into account.
The old ObjectFlag field is left alone and not changed. Three new fields are added to ObjectAdd message after ObjectFlag field: { GroupMask U32 } { EveryoneMask U32 } { NextOwnerMask U32 }If needed, base and owner masks can be sent as well, but is it really needed for new objects ? We know for sure that these two masks always contain PERM_ALL . Coco Linden expressed criticism too. She told me that the old message system was "frozen" and could not be changed.
The solution is to switch ObjectAdd to the new capabilities system. The new client-side patch "inworld.patch" takes this remark into account. It is attached to issue VWR-8049. I'm attaching the LLSD dump of an example of the new ObjectAdd packet using capabilities
and with the new permission fields. As far as I can tell it would be possible to use some bits in the legacy ObjectAdd::AddData::AddFlags field. At frist glance the "object flags" in object_flags.h appear to be full, however a few of those flags are no longer used, and the majority of them are actually used for the ObjectUpdate messages from simulator to viewer. That is, within the context of ObjectAdd most of those flags are meaningless (the exceptions are FLAG_USE_PHYSICS and FLAGS_CREATE_SELECTED, which are used in both directions).
ObjectAdd does not yet have a caps implementation server-side. I've got a simulator change that will enable custom default permissions when rezzing new prims, if the proper bits are set in the ObjectAdd::AddData::AddFlags field. If this passes review then I'll be committing to the maint-server-8 branch and I'll come back here with some comments about how to take advantage of it should it ever get deployed.
The server-side changes necessary for scripts (VWR-12121), notecards (VWR-12122), and wearables (VWR-12123) are each different. I looked into how to do it for scripts and got lost in the convolutions of the code (it is end-of-day Friday and my brain is fried). But I'll try to keep those projects in mind. Hi Andrew,
It's nice you hade time to look at this > As far as I can tell it would be possible to use some bits in the legacy ObjectAdd::AddData::AddFlags field. That was my first intention, but people told me the capabilities were the way to go, so the current patch (client-side) attached to VWR-8049 does caps. But if you really want to go the UDP way, I can add the necessary bits to the client side patch which would then do both UDP and CAPS. > ObjectAdd does not yet have a caps implementation server-side. Sure, that's what this jira was requesting, being given that everyone judged my initial idea of reusing existing flags in the UDP packet was ugly For your information, there is already a caps implementation for opensim running and tested with my client-side patches. > I've got a simulator change that will enable custom default permissions when rezzing new prims, if the proper bits are set in the ObjectAdd::AddData::AddFlags field. Cool (if UDP is the way to go). > The server-side changes necessary for scripts (VWR-12121), notecards (VWR-12122), and wearables (VWR-12123) are each different. It's different problems client-side too. Coco Linden already implemented everything with respect to "File => Upload" side of the problem. Next step was inworld object creation, for which we needed those ObjectAdd server side changes. > I looked into how to do it for scripts and got lost in the convolutions of the code (it is end-of-day Friday and my brain is fried). But I'll try to keep those projects in mind. Believe me, it's very different problems, let's do them once at a time.
You'll find all the many client-side patches attached to VWR-8049. I'll be able to do your UDP message tweaks client-side, if you confirm that you don't want to go the caps way server-side. Just tell me and i'll do the work. Perharps it would be a good idea too for you to have a chat with Coco Linden who already knows the problem well. Anyway I'm happy you jumped into this Re: "I've got a simulator change that will enable custom default permissions when rezzing new prims, if the proper bits are set in the ObjectAdd::AddData::AddFlags field"
Andrew, can you explain what you are doing with this, how the objects will rez in world, whether you mean something will have to change about the core way the server has always read objects. Also, I'd invite you to think about what's really going on here, which is an assault on copyright, and smuggling in a copyleftist regime into the tools by forcing mass perms on objects under the notion of "builder convenience" for a tiny subset of residents. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
====================
If having the User Interface for those settings in Edit => preferences is not okay, we could of course move it to a new floater in the "tools" menu.
We could also share the default settings with the default settings for the new feature "inworld bulk permissions change".
Update on the server side changes
======================
I am currently investigating the changes that would be needed for the new creations that are done directly in the inventory folder and in appearance mode (clothing, body parts, notecards, scripts, etc.), i.e. not inworld.