Beispiel #1
0
        public void SetPermissions(WebClient client, WebPermission permission)
        {
            if (!Invited.Contains(client))
            {
                return;
            }

            WebPermission lastPermission;

            if (m_AccessControlDictionary.TryGetValue(client, out lastPermission))
            {
                m_AccessControlDictionary[client] = permission;
                if (permission == WebPermission.None)
                {
                    LeaveShare(client);
                }
            }
            else
            {
                lock (m_AccessControlDictionary)
                {
                    m_AccessControlDictionary.Add(client, permission);
                }
            }
        }
Beispiel #2
0
 internal void Invite(WebClient client)
 {
     if (!Invited.Contains(client))
     {
         m_Invited.Add(client);
     }
     client.Send(new WebMessage("webShareInvite", ToJSON()));
 }
Beispiel #3
0
        public void Ban(WebClient client)
        {
            if (Invited.Contains(client))
            {
                return;
            }

            //Ensure only 1 thread in m_Invited
            lock (m_Invited)
            {
                m_Invited.Add(client);
            }

            //If the user was present then make him leave
            if (Present.Contains(client))
            {
                //Tell the client he was banned
                client.Que(new WebMessage("shareBan", ToJSON()));
                LeaveShare(client);
            }
        }