Class GroupManager

java.lang.Object
org.vrspace.server.core.GroupManager

@Component @Lazy public class GroupManager extends Object
Manages client group membership and ownership. General workflow when joining private groups: ask to join, owner allows. OR, invite a member, member accepts. For public groups, member just joins, though invite/accept should work. User can leave the group, or get kicked by the owner.
Author:
joe
  • Constructor Details

    • GroupManager

      public GroupManager()
  • Method Details

    • listGroups

      @Transactional public List<UserGroup> listGroups(Client client)
    • createGroup

      @Transactional public UserGroup createGroup(Client client, UserGroup group)
    • deleteGroup

      @Transactional public void deleteGroup(Client client, UserGroup group)
    • show

      @Transactional public List<Client> show(UserGroup group)
    • invite

      public void invite(UserGroup group, Long memberId, Client owner)
    • invite

      public void invite(UserGroup group, Client member, Client owner)
      Invite a client to a group. For private groups, only owners can invite.
      Parameters:
      group -
      member -
    • accept

      public void accept(UserGroup group, Client member)
      Accept invitation to a group, either public or private
      Parameters:
      group -
      member -
    • ask

      public void ask(UserGroup group, Client member)
      Ask to join a private group
      Parameters:
      group -
      member -
    • allow

      public void allow(UserGroup group, Long memberId, Client owner)
    • allow

      public void allow(UserGroup group, Client member, Client owner)
      Allow a client who asked to join a private group
      Parameters:
      group -
      member -
    • join

      public void join(UserGroup group, Client member)
      Join a public group
      Parameters:
      group -
      member -
    • leave

      public void leave(UserGroup group, Client member)
      Leave a group
      Parameters:
      group -
      member -
    • kick

      public void kick(UserGroup group, long memberId, Client owner)
    • kick

      public void kick(UserGroup group, Client member, Client owner)
      Group owner can kick another user from the group
      Parameters:
      group -
      member -
    • pendingRequests

      public List<GroupMember> pendingRequests(UserGroup group, Client member)
      Group owner can list all pending join requests
      Parameters:
      group -
      member -
      Returns:
    • pendingInvitations

      public List<GroupMember> pendingInvitations(Client member)
      Any user can list their own pending invitations
      Parameters:
      member -
      Returns:
    • addOwner

      public void addOwner(UserGroup group, Client owner)
    • removeOwner

      public void removeOwner(UserGroup group, Client owner)
    • write

      public void write(Client sender, UserGroup group, String text)
    • getGroup

      public UserGroup getGroup(Client client, String name)
    • getGroup

      public UserGroup getGroup(Client client, long groupId)
    • getGroup

      public UserGroup getGroup(long groupId)