public void Leave(UGI group, UUID sessionid, UGUI agent) { GroupSession session; if (m_ActiveSessions.TryGetValue(sessionid, out session) && group.EqualsGrid(session.Group)) { session.Participants.Remove(agent); m_ActiveChats.RemoveIf(session.Group.ID, (r) => r.Participants.Count == 0); } }
public bool CheckAgentPermissions(UGUI creator, UGUI owner, UGI ownergroup, UGUI accessor, UGI accessorgroup, InventoryPermissionsMask wanted) { if (accessor.EqualsGrid(creator)) { return(true); } else if (wanted == InventoryPermissionsMask.None) { return(false); } else if (accessorgroup.EqualsGrid(ownergroup) && (wanted & Group) == wanted && (Base & Current & InventoryPermissionsMask.FullPerm) == InventoryPermissionsMask.FullPerm) { return(true); } else if (accessor.EqualsGrid(owner)) { return((wanted & Base & Current) == wanted); } else { return((wanted & Base & EveryOne) == wanted); } }