Exemple #1
0
        public bool Handle(IClientObject client, RequestObject request)
        {
            if (request.Module != "history")
            {
                return(false);
            }
            object[] args = JsonConvert.DeserializeObject <object[]>(request.Args.ToString());
            DateTime last;

            switch (request.Cmd)
            {
            case "room":
                string rstr = args[0] as string;
                string time = args[1].ToString();
                last = DateTime.Parse(time).ToUniversalTime();
                ChatMessage[] h = Manager.FindRoom(rstr)?.GetMessageHistoryTo(last);
                client.SendMessage(ResponseConstructor.GetRoomHistoryResponse(rstr, h));
                break;

            case "private":
                string user1 = (string)args[0];
                string user2 = (string)args[1];
                time = args[2].ToString();
                last = DateTime.Parse(time).ToUniversalTime();
                h    = HistoryDataprovider.GetPrivateHistory(user1, user2, last);
                client.SendMessage(ResponseConstructor.GetPrivateHistoryResponse(user2, h));
                break;

            default: break;
            }

            return(true);
        }
Exemple #2
0
        private void BanUser(string username, DateTime?duration)
        {
            AuthServerAdminClient.Ban(username, duration);

            IClientObject user = Manager.FindClient(username);

            if (user == null || user.ToString() == "")  //user not found
            {
                return;
            }
            LogProvider.AppendRecord(string.Format("[{0}]: banned user {1}", user.Username, username));
            user.SendMessage(ResponseConstructor.GetBannedNotification(duration));
            user.Role = new BannedUser(user, duration);
        }
        public bool Handle(IClientObject client, RequestObject request)
        {
            if (request.Module != "Registration")
            {
                return(false);
            }

            object[] arg  = JsonConvert.DeserializeObject <object[]>(request.Args.ToString());
            Person   user = new Person(arg[0].ToString(), arg[1].ToString(), arg[2].ToString());
            string   info = "hooy";// new ApiAuth().api.Reg(user);

            client.SendMessage(ResponseConstructor.GetErrorNotification(info, "login"));

            return(true);
        }
Exemple #4
0
        private void UnBanUser(string username)
        {
            AuthServerAdminClient.UnBan(username);

            IClientObject user = Manager.FindClient(username);

            if (user == null || user.ToString() == "")
            {
                return;
            }

            user.SendMessage(ResponseConstructor.GetUnBannedNotification(username));
            LogProvider.AppendRecord(string.Format("[{0}]: unbanned user {1}", user.Username, username));

            user.Role = new User(user);
        }
Exemple #5
0
        protected virtual void HandleActive(IClientObject client, RequestObject request)
        {
            RoomObject room = null;

            room = Manager.FindRoom(request.Args.ToString());

            if (room != null)
            {
                room.AddListener(this);

                LogProvider.AppendRecord(string.Format("[{0}]: entered room {1}", client.Username, room.Name));
                ChatMessage[] msgs = room.GetMessageHistoryTo(DateTime.Now);
                if (msgs.Length > 0)
                {
                    client.SendMessage(ResponseConstructor.GetRoomHistoryResponse(room.Name, msgs));
                }
            }
        }
Exemple #6
0
        public bool Handle(IClientObject client, RequestObject request)
        {
            if (request.Module != "Forgot")
            {
                return(false);
            }
            bool flag = false;//new ApiAuth().api.ForgotPassword(request.Args.ToString());

            if (flag == true)
            {
                client.SendMessage(ResponseConstructor.GetErrorNotification("Success", "login"));
            }
            else
            {
                client.SendMessage(ResponseConstructor.GetErrorNotification("Error", "login"));
            }
            return(true);
        }
Exemple #7
0
        public bool Handle(IClientObject client, RequestObject request)
        {
            if (request.Module != "room")
            {
                return(false);
            }
            string roomName = (string)request.Args;
            var    room     = Manager.FindRoom(roomName);

            if (request.Cmd == "create")
            {
                if (room != null)
                {
                    client.SendMessage(ResponseConstructor.GetErrorNotification("This room already exists", "room"));
                    LogProvider.AppendRecord(string.Format("[{0}]: tried to create existing room {1}", client.Username, roomName));
                }
                else
                {
                    Manager.CreateRoom(roomName, client.Username);
                    LogProvider.AppendRecord(string.Format("[{0}]: created new room {1}", client.Username, roomName));
                }
            }
            else if (request.Cmd == "close")
            {
                if (room == null)
                {
                    client.SendMessage(ResponseConstructor.GetErrorNotification("Can't delete this room as it doesn't exist", "room"));
                    LogProvider.AppendRecord(string.Format("[{0}]: tried to close unexisting room {1}", client.Username, roomName));
                }
                else if (room.Creator != client.Username && client.Role.GetType() != typeof(Admin))
                {
                    client.SendMessage(ResponseConstructor.GetErrorNotification("Can't delete room " + roomName + " . No permission.", "room"));
                    LogProvider.AppendRecord(string.Format("[{0}]: tried to close room {1} but had no permission", client.Username, roomName));
                }
                else
                {
                    Manager.CloseRoom((string)request.Args);
                    LogProvider.AppendRecord(string.Format("[{0}]: closed room {1}", client.Username, roomName));
                }
            }
            return(true);
        }
 protected void ResolveStatus(IClientObject client)
 {
     if (IsAdmin(client.Username))
     {
         client.Role = new Admin(client);
         client.SendMessage(ResponseConstructor.GetLoginResultNotification("admin", client.Username));
         LogProvider.AppendRecord(string.Format("[{0}]: Logged in as admin", client.Username));
     }
     else if (BlackListProvider.RecordExists(client.Username))
     {
         client.Role = new BannedUser(client);
         client.SendMessage(ResponseConstructor.GetLoginResultNotification("banned", client.Username));
         LogProvider.AppendRecord(string.Format("[{0}]: logged as banned user", client.Username));
     }
     else
     {
         client.Role = new User(client);
         client.SendMessage(ResponseConstructor.GetLoginResultNotification("ok", client.Username));
         LogProvider.AppendRecord(string.Format("[{0}]: logged in", client.Username));
     }
     Manager.AddClient(client);
 }
Exemple #9
0
 public static void OnClientAdded(string room, string username)
 {
     BroadcastAll(ResponseConstructor.GetUserEnteredNotification(room, username));
 }
Exemple #10
0
 public static void OnRoomDeleted(string room)
 {
     BroadcastAll(ResponseConstructor.GetRoomRemovedNotification(room));
 }
Exemple #11
0
 public static void OnRoomCreated(string room, string creator)
 {
     BroadcastAll(ResponseConstructor.GetRoomCreatedNotification(room, creator));
 }
Exemple #12
0
 public static void OnClientLeft(string room, string username)
 {
     BroadcastAll(ResponseConstructor.GetUserLeftNotification(room, username));
 }