|
|
|
Damn, I missed finding this issue, it wasn't listed to the group meta-issue. This should probably be in SVC, not MISC... which is where I created
[Text of As per http://nwn.blogs.com/nwn/2008/01/robin-linden-on.html llGroupInvite(key agent, string role); Sends an invitation to join the script's group in the indicated role to the agent. If the agent is already a member of the group, then they are simply assigned to that role. llGroupRemove(key agent, string role); Removes the agent from the role. If that was the last role the agent was in, or the role is "", the agent is ejected from the group. Restrictions: Script must be owned by an agent who is a member of the group allowed to invite users to the group and role provided. llGroupInvite() would be strongly throttled, to prevent it from becoming a load on the database system itself.] I'll mark it as a duplicate and close it. (DONE) Raised priority to major, because these functions would allow the implementation of SVC-1173 by residents, which would over time significantly reduce database lag from groups.
The problems with this as raised by Kelly Linden in a topic a while ago are the tremendously strain it could put on group servers, with all kinds of complications such as permission checking of objects (which wouldn't ordinarily store such permissions), duplicate invites, invite spam etc. etc.
As such I would like to point out for those who want automatic group invitations for things such as content control (renting mainland, vendor space etc.) then I see it being unlikely that we'll get scripted support given the huge amount of extra work it would require of the group servers. Even heavily restricted you're talking about requiring objects to store all relevant group-permissions for their owner, or query the group server. Even with caching I'm not sure the load would be acceptable.
Also, I fail to see what Why would llGroupRemove() require a role to be specified? For it to be related remotely to SVC-1173 it should return the user's role (or empty string if they weren't a group-member) so that they can then be re-added under the same role. As you've detailed it the script would have no way at all of knowing what role somebody was in the group. Lastly to work at all it'd really need to be a dataserver-based implementation due to having to fetch group-data. I'm sorry, I meant "MISC-208".
We seem to be talking at cross purposes. The only thing that is required for the object to store is PERMISSION_MANAGE_GROUPS. When it performs the llGroupInvite() operation or the llGroupRemove() operation it would follow the same code path that is used when a group administrator performs the same action. This would not add any load over the current situation where a human or a bot performs the same operation, and doing it in-world would allow the group table to be significantly reduced in size as people get used to using tools like this instead of staying in-role all the time. This is a more general tool than needed for SVC-1173, and if the goal was simply to allow that llGroupRemove() and the role argument to llGroupInvite() wouldn't be necessary at all. I agree that just for that purpose this would be a far less desirable mechanism than implementing SVC-1173 directly. The situation wouldn't be as bad as you make out for most cases, for example the rent box in a vendor space or house would be able to call llGroupInvite() for the tenant, who would be there anyway. llGroupRemove() would accept a role to allow you to only remove them from the role, you'd provide the empty string to remove them from the group completely. llGroupInvite() similarly has the role option to allow you to put someone into an administrative role. There would be no return value, to allow the operation to be asynchronous.
Ah, that makes more sense then, hopefully Kelly Linden or another Linden will catch this one and can comment more fully.
As for In the meanwhile, use this
http://www.demandroids.com/GroupInvite.html The JIRA is not an advertising medium, please do not post links to commercial products, they're only really relevant when reporting a bug that effects a particular line of products for an unknown reason.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
One of these is : http://forums.secondlife.com/showthread.php?t=140204