public GroupProfileData GetMemberGroupProfile(UUID requestingAgentID, UUID groupID, UUID agentID) { GroupProfileData GPD = new GroupProfileData (); if (m_doRemoteOnly) { object remoteValue = DoRemote (requestingAgentID, groupID, agentID); return remoteValue != null ? (GroupProfileData)remoteValue : GPD; } if (!CheckGroupPermissions(requestingAgentID, groupID, (ulong) GroupPowers.MemberVisible)) return GPD; GroupRecord record = GetGroupRecord(requestingAgentID, groupID, null); QueryFilter filter1 = new QueryFilter(); filter1.andFilters["GroupID"] = agentID; // yes these look the wrong way around filter1.andFilters["AgentID"] = groupID; // but they were like that when I got here! ~ SignpostMarv QueryFilter filter2 = new QueryFilter(); filter2.andFilters["GroupID"] = groupID; List<string> Membership = GD.Query(new[] { "Contribution", "ListInProfile", "SelectedRoleID" }, _MEMBERSHIPREALM, filter1, null, null, null); int GroupMemCount = int.Parse(GD.Query(new[] {"COUNT(AgentID)"}, _MEMBERSHIPREALM, filter2, null, null, null)[0]); int GroupRoleCount = int.Parse(GD.Query(new[] {"COUNT(RoleID)"}, _ROLEREALM, filter2, null, null, null)[0]); QueryFilter filter3 = new QueryFilter(); filter3.andFilters["RoleID"] = Membership[2]; List<string> GroupRole = GD.Query(new[] { "Name", "Powers" }, _ROLEREALM, filter3, null, null, null); GPD.AllowPublish = record.AllowPublish; GPD.Charter = record.Charter; GPD.FounderID = record.FounderID; GPD.GroupID = record.GroupID; GPD.GroupMembershipCount = GroupMemCount; GPD.GroupRolesCount = GroupRoleCount; GPD.InsigniaID = record.GroupPicture; GPD.MaturePublish = record.MaturePublish; GPD.MembershipFee = record.MembershipFee; GPD.MemberTitle = GroupRole[0]; GPD.Money = 0; GPD.Name = record.GroupName; GPD.OpenEnrollment = record.OpenEnrollment; GPD.OwnerRole = record.OwnerRoleID; GPD.PowersMask = ulong.Parse(GroupRole[1]); GPD.ShowInList = int.Parse(Membership[2]) == 1; return GPD; }
public GroupProfileData GetGroupProfile(UUID requestingAgentID, UUID groupID) { if (m_doRemoteOnly) { object remoteValue = DoRemote (requestingAgentID, groupID); return remoteValue != null ? (GroupProfileData)remoteValue : new GroupProfileData (); } GroupProfileData profile = new GroupProfileData(); GroupRecord groupInfo = GetGroupRecord(requestingAgentID, groupID, null); if (groupInfo != null) { profile.AllowPublish = groupInfo.AllowPublish; profile.Charter = groupInfo.Charter; profile.FounderID = groupInfo.FounderID; profile.GroupID = groupID; profile.GroupMembershipCount = GetGroupMembers(requestingAgentID, groupID).Count; profile.GroupRolesCount = GetGroupRoles(requestingAgentID, groupID).Count; profile.InsigniaID = groupInfo.GroupPicture; profile.MaturePublish = groupInfo.MaturePublish; profile.MembershipFee = groupInfo.MembershipFee; profile.Money = 0; // TODO: Get this from the currency server? profile.Name = groupInfo.GroupName; profile.OpenEnrollment = groupInfo.OpenEnrollment; profile.OwnerRole = groupInfo.OwnerRoleID; profile.ShowInList = groupInfo.ShowInList; } GroupMembershipData memberInfo = GetGroupMembershipData(requestingAgentID, groupID, requestingAgentID); if (memberInfo != null) { profile.MemberTitle = memberInfo.GroupTitle; profile.PowersMask = memberInfo.GroupPowers; } return profile; }
public GroupProfileData GetMemberGroupProfile(UUID requestingAgentID, UUID GroupID, UUID AgentID) { object remoteValue = DoRemote(requestingAgentID, GroupID, AgentID); if (remoteValue != null || m_doRemoteOnly) return (GroupProfileData) remoteValue; if (!CheckGroupPermissions(requestingAgentID, GroupID, (ulong) GroupPowers.MemberVisible)) return new GroupProfileData(); GroupProfileData GPD = new GroupProfileData(); GroupRecord record = GetGroupRecord(requestingAgentID, GroupID, null); QueryFilter filter1 = new QueryFilter(); // We need to check to see if these two are in the correct order, AgentID; and GroupID; filter1.andFilters["GroupID"] = AgentID; filter1.andFilters["AgentID"] = GroupID; QueryFilter filter2 = new QueryFilter(); filter2.andFilters["GroupID"] = GroupID; List<string> Membership = data.Query(new[] { "Contribution", "ListInProfile", "SelectedRoleID" }, "group_membership", filter1, null, null, null); int GroupMemCount = int.Parse(data.Query(new[] {"COUNT(AgentID)"}, "group_membership", filter2, null, null, null)[0]); int GroupRoleCount = int.Parse(data.Query(new[] {"COUNT(RoleID)"}, "group_roles", filter2, null, null, null)[0]); QueryFilter filter3 = new QueryFilter(); filter3.andFilters["RoleID"] = Membership[2]; List<string> GroupRole = data.Query(new[] { "Name", "Powers" }, "group_roles", filter3, null, null, null); GPD.AllowPublish = record.AllowPublish; GPD.Charter = record.Charter; GPD.FounderID = record.FounderID; GPD.GroupID = record.GroupID; GPD.GroupMembershipCount = GroupMemCount; GPD.GroupRolesCount = GroupRoleCount; GPD.InsigniaID = record.GroupPicture; GPD.MaturePublish = record.MaturePublish; GPD.MembershipFee = record.MembershipFee; GPD.MemberTitle = GroupRole[0]; GPD.Money = 0; GPD.Name = record.GroupName; GPD.OpenEnrollment = record.OpenEnrollment; GPD.OwnerRole = record.OwnerRoleID; GPD.PowersMask = ulong.Parse(GroupRole[1]); GPD.ShowInList = int.Parse(Membership[2]) == 1; return GPD; }