From 659b55905dc7e006ae73f3d569efdf52276aa825 Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Sat, 18 Apr 2009 21:33:48 +0000 Subject: Thank you kindly, MCortez, for a patch that: Added is a patch that adds a rough Groups implementation. This patch allows the creation, adding and maintaining Groups, Roles and Members. Work has begun on a very naive implementation of messaging, and minimal support for notifications {no attachments yet}. Proposals are not yet supported, but are on the to-do list. This implementation is not active by default, and must be configured in OpenSim.ini to become active. --- .../Avatar/XmlRpcGroups/IGroupDataProvider.cs | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupDataProvider.cs (limited to 'OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupDataProvider.cs') diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupDataProvider.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupDataProvider.cs new file mode 100644 index 0000000..6e9105d --- /dev/null +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/IGroupDataProvider.cs @@ -0,0 +1,85 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSim Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; + +using OpenMetaverse; + +using OpenSim.Framework; + +namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups +{ + interface IGroupDataProvider + { + UUID CreateGroup(string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish, UUID founderID); + void UpdateGroup(UUID groupID, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment, bool allowPublish, bool maturePublish); + GroupRecord GetGroupRecord(UUID GroupID, string GroupName); + List FindGroups(string search); + List GetGroupMembers(UUID GroupID); + + void AddGroupRole(UUID groupID, UUID roleID, string name, string description, string title, ulong powers); + void UpdateGroupRole(UUID groupID, UUID roleID, string name, string description, string title, ulong powers); + void RemoveGroupRole(UUID groupID, UUID roleID); + List GetGroupRoles(UUID GroupID); + List GetGroupRoleMembers(UUID GroupID); + + void AddAgentToGroup(UUID AgentID, UUID GroupID, UUID RoleID); + void RemoveAgentFromGroup(UUID AgentID, UUID GroupID); + + void AddAgentToGroupInvite(UUID inviteID, UUID groupID, UUID roleID, UUID agentID); + GroupInviteInfo GetAgentToGroupInvite(UUID inviteID); + void RemoveAgentToGroupInvite(UUID inviteID); + + + void AddAgentToGroupRole(UUID AgentID, UUID GroupID, UUID RoleID); + void RemoveAgentFromGroupRole(UUID AgentID, UUID GroupID, UUID RoleID); + List GetAgentGroupRoles(UUID AgentID, UUID GroupID); + + void SetAgentActiveGroup(UUID AgentID, UUID GroupID); + GroupMembershipData GetAgentActiveMembership(UUID AgentID); + + void SetAgentActiveGroupRole(UUID AgentID, UUID GroupID, UUID RoleID); + void SetAgentGroupInfo(UUID AgentID, UUID GroupID, bool AcceptNotices, bool ListInProfile); + + GroupMembershipData GetAgentGroupMembership(UUID AgentID, UUID GroupID); + List GetAgentGroupMemberships(UUID AgentID); + + void AddGroupNotice(UUID groupID, UUID noticeID, string fromName, string subject, string message, byte[] binaryBucket); + GroupNoticeInfo GetGroupNotice(UUID noticeID); + List GetGroupNotices(UUID GroupID); + } + + public class GroupInviteInfo + { + public UUID GroupID = UUID.Zero; + public UUID RoleID = UUID.Zero; + public UUID AgentID = UUID.Zero; + public UUID InviteID = UUID.Zero; + } + +} -- cgit v1.1