• 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-1661
Type: New Feature New Feature
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Ralf Haifisch
Votes: 61
Watchers: 12
Operations

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

Feature Request: LSL groupmember management

Created: 09/Jul/07 12:40 PM   Updated: 20/Aug/08 06:37 PM
Component/s: Groups, Scripts
Affects Version/s: None
Fix Version/s: None

Environment: n/a
Issue Links:
Duplicate
 
Relates


 Description  « Hide
For many businesses (land, rental, shops, clubs) groups are the only effective way to manage rights and/or communication.

While roles are very powerfull, the lack of a management via LSL and the fear to add wrong roles drives people in using seperate groups, more than needed.

Although there is much work to be done manualy.

I.e. if somebody rents or buys a spot, the need to be added in the group to be able to use their place or for support communication.

Functions needed in LSL:

  • must have
  • add somebody to a group, optional paramater "role", if omit "everyone"
  • kick someone out of a group
  • medium prio
  • send group IM
  • send group notices , optional parameter attachment
  • nice to have
  • change role-assignment of a group member
  • receive grou IM
    cheers
    Ralf


 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Angel Fluffy added a comment - 17/Jul/07 10:22 AM
There are old topics on the forum on this.
One of these is : http://forums.secondlife.com/showthread.php?t=140204

kam lacey added a comment - 08/Oct/07 04:00 PM
We also need the following functions:
  • check if a given user is a member of a given group
  • give a user's role, status, last-login-date in a given role.

Argent Stonecutter added a comment - 11/Jan/08 07:53 AM - edited
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 SVC-1172...

[Text of SVC-1172:

As per http://nwn.blogs.com/nwn/2008/01/robin-linden-on.html and MISC-208 there is a need to reduce the number of groups that users have to be concurrently members of.

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.
Script must have the (new) permission, PERMISSION_MANAGE_GROUPS, granted by the script's owner.
Optional: for llGroupInvite(), script must be called from a touch event and agent must be llDetectedKey(0).

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)


Argent Stonecutter added a comment - 11/Jan/08 08:08 AM
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.

Haravikk Mistral added a comment - 07/Feb/08 10:43 AM
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 VWR-174 holds an alternative for these cases.

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.


Argent Stonecutter added a comment - 07/Feb/08 11:34 AM
The simpler version I proposed would dramatically reduce the load on the servers over time, by reducing the number of groups that people have to remain members of, for any reason... not just for land permissions.

See SVC-1173 and my comments in SVC-208 for further discussion of why this would work.


Haravikk Mistral added a comment - 07/Feb/08 01:08 PM
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 SVC-208 has to do with it, did you mean a different issue?
As for SVC-1173, LSL control wouldn't help at all, as the group you want to "suspend" would require you to be IN IT in order for your object to let you re-join as required. It would require groups to have their own "suspension servers" which would require users to constantly teleport to them in order to re-add themselves to the group under their previous role.

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.


Argent Stonecutter added a comment - 07/Feb/08 02:51 PM - edited
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.

VWR-174 is also useful (albeit misfiled :> ). Any of these solutions would serve the purpose. You may note I already voted for it.


Haravikk Mistral added a comment - 07/Feb/08 03:02 PM - edited
Ah, that makes more sense then, hopefully Kelly Linden or another Linden will catch this one and can comment more fully.

As for VWR-174, I wasn't aiming it specifically for you but for anyone interested in this. As for it being misfiled, it was posted back when SVC had no script option, I'm unsure about posting it again, I suppose I should, it took ages to get its 9 votes but then that might be because of it being VWR, such a conundrum =)

[edit] VWR-174 is now filed under SVC-1466 =)


Demantoid Dagger added a comment - 04/May/08 07:55 AM

Haravikk Mistral added a comment - 04/May/08 08:45 AM
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.