Exemplo n.º 1
0
        public void AddUser(AddUserMessage newUser)
        {
            var user = ConvertToUser(newUser);

            _db.Users.Add(user);
            _db.SaveChanges();
        }
Exemplo n.º 2
0
        public void Create_PostAndModelStateIsValid_AddMessage()
        {
            var createUserMessage = new AddUserMessage();

            controller.Create(createUserMessage);

            commandMock.Verify(u => u.Execute(It.IsAny<CreateUserCommand>()));
        }
Exemplo n.º 3
0
        public void Create_PostWithInvalidModelState_ReturnsViewWithPassedMessage()
        {
            controller.ModelState.AddModelError("fel", "felet");
            var createUserMessage = new AddUserMessage();
            var result = (ViewResult)controller.Create(createUserMessage);

            Assert.That(result.ViewName, Is.EqualTo(""));
            Assert.That(result.Model, Is.SameAs(createUserMessage));
        }
Exemplo n.º 4
0
 private StoreContext.User ConvertToUser(AddUserMessage newUserMessage)
 {
     return(new StoreContext.User
     {
         Id = Guid.NewGuid().ToString(),
         Level = newUserMessage.Level,
         Password = MD5Helper.CalculateMD5Hash(newUserMessage.Password),
         UserName = newUserMessage.Username
     });
 }
Exemplo n.º 5
0
        public override Task <AddUserResposne> AddUser(AddUserMessage request, ServerCallContext context)
        {
            Guid id = Guid.NewGuid();

            _repository.Add(new UserEntry
            {
                Id       = id,
                Username = request.Username
            });

            return(Task.FromResult(new AddUserResposne {
                Id = id.ToString()
            }));
        }
        private async void OnAddUserMessage(AddUserMessage message)
        {
            IsLoading = true;
            if (_projectQueryService.Project.ProjectMembersNotInRepository != null &&
                _projectQueryService.Project.ProjectMembersNotInRepository.Contains(message.UserToBeAdded))
            {
                IsLoading = false;
                return;
            }

            AddUserFromProject(message.UserToBeAdded);

            _projectQueryService.AddUser(message.UserToBeAdded);
            IsLoading = false;
            await _projectQueryService.SaveChanges();
        }
Exemplo n.º 7
0
        public ActionResult Create(AddUserMessage message)
        {
            if(!ModelState.IsValid)
            {
                return View(message);
            }

            var result = commands.Execute(new CreateUserCommand(message));

            if (result.IsSuccess())
            {
                authenticator.SetAuthCookie(result.ReturnValue.Username, true);
            }
            else
            {
                ModelState.AddModelError("", result.CombinedErrors());
                return View(message);
            }

            return RedirectToAction("Index", "Home");
        }
Exemplo n.º 8
0
        public void Start()
        {
            var returnedData = NodeCommunicationClient.Send(
                _configuration.ConfigurationToolAddress,
                _configuration.User,
                _configuration.Password,
                new SingleValueMessage {
                Value = CONFIG
            },
                Command.REQ,
                nameof(ConfigurationTool));

            var name = MessagePackSerializer.Deserialize <SingleValueMessage>(returnedData.Content).Value;

            name = name.Substring(0, name.Length - 4);

            while (true)
            {
                Console.Write($"{name}> ");
                var command = Console.ReadLine();

                var      msgCommand = Command.UNKNOWN;
                IMessage content    = null;

                //Local commands
                if (clear.IsMatch(command))
                {
                    Console.Clear();
                    continue;
                }

                //Add user
                if (addUser.IsMatch(command))
                {
                    var groups = addUser.Match(command).Groups.Select(a => a.Value).ToList();
                    msgCommand = Command.CONF_ADD_USER;
                    var addUserMsg = new AddUserMessage
                    {
                        Level    = int.Parse(groups[3]),
                        Username = groups[1],
                        Password = groups[2]
                    };
                    content = addUserMsg;
                }
                //Set user level
                else if (setUserLevel.IsMatch(command))
                {
                    var groups = setUserLevel.Match(command).Groups.Select(a => a.Value).ToList();
                    msgCommand = Command.CONF_SET_USER_LEVEL;
                    var setUserLevelMsg = new SetUserLevelMessage
                    {
                        User     = groups[1],
                        NewLevel = int.Parse(groups[2])
                    };
                    content = setUserLevelMsg;
                }
                //Remove user
                else if (removeUser.IsMatch(command))
                {
                    var userName = removeUser.Match(command).Groups[1].Value;
                    msgCommand = Command.CONF_REMOVE_USER;
                    var removeUserMsg = new SingleValueMessage {
                        Value = userName
                    };
                    content = removeUserMsg;
                }
                //Upload file
                else if (putProgram.IsMatch(command) || putPipeline.IsMatch(command))
                {
                    var isProgram = putProgram.IsMatch(command);

                    var groups = isProgram
                        ? putProgram.Match(command).Groups.Select(a => a.Value).ToList()
                        : putPipeline.Match(command).Groups.Select(a => a.Value).ToList();

                    msgCommand = isProgram ? Command.CONF_PUT_PROGRAM : Command.CONF_PUT_PIPELINE;
                    var putMsg = new PutMessage
                    {
                        TargetName = groups[2],
                        TargetType = isProgram ? TargetTypes.PROGRAM : TargetTypes.PIPELINE,
                        Content    = File.ReadAllBytes(groups[1]),
                        Runtime    = groups[3]
                    };
                    content = putMsg;
                }
                //Distribute program/pipeline to child
                else if (distribute.IsMatch(command))
                {
                    var groups = distribute.Match(command).Groups.Select(a => a.Value).ToList();

                    msgCommand = Command.CONF_DISTRIBUTE;
                    var distributeMsg = new DistributeMessage
                    {
                        File   = groups[1],
                        Target = groups[2]
                    };
                    content = distributeMsg;
                }
                //Get status
                else if (getStatus.IsMatch(command))
                {
                    var groups = getStatus.Match(command).Groups.Select(a => a.Value).ToList();

                    msgCommand = Command.CONF_GET_STATUS;
                    var statusTarget = StatusTarget.All;
                    switch (groups[1].First().ToString().ToUpper())
                    {
                    case "A":
                        statusTarget = StatusTarget.All;
                        break;

                    case "N":
                        statusTarget = StatusTarget.Nodes;
                        break;

                    case "S":
                        statusTarget = StatusTarget.Self;
                        break;
                    }

                    var getStatusMsg = new GetStatusMessage
                    {
                        Target     = statusTarget,
                        StatusInfo = new List <Status>()
                    };
                    content = getStatusMsg;
                }
                //Ok?
                else if (ok.IsMatch(command))
                {
                    msgCommand = Command.OK;
                    var okMsg = new EmptyMessage();
                    content = okMsg;
                }
                //Fail!
                else if (fail.IsMatch(command))
                {
                    msgCommand = Command.FAIL;
                    var failMsg = new EmptyMessage();
                    content = failMsg;
                }

                if (msgCommand != Command.UNKNOWN)
                {
                    var response = NodeCommunicationClient.Send(
                        _configuration.ConfigurationToolAddress,
                        _configuration.User,
                        _configuration.Password,
                        content,
                        msgCommand,
                        CONFIG);

                    if (response.Message.Command == Command.OK)
                    {
                        switch (msgCommand)
                        {
                        case Command.CONF_GET_STATUS:
                            var statusMessage =
                                MessagePackSerializer.Deserialize <GetStatusMessage>(response.Content);
                            Console.WriteLine();
                            statusMessage.StatusInfo.ForEach(stat =>
                            {
                                Console.WriteLine($"{stat.Name}");
                                Console.WriteLine($"{stat.Name} - " + (stat.Up ? "UP" : "DOWN") + "\n",
                                                  stat.Up ? Log.Green : Log.Red);
                            });
                            break;

                        case Command.OK:
                            Console.WriteLine("Ok!", Log.Green);
                            break;

                        case Command.FAIL:
                            Console.WriteLine(":(", Log.Red);
                            break;
                        }
                    }
                    else
                    {
                        Console.WriteLine(
                            $"Execution at node failed!:\n{MessagePackSerializer.Deserialize<SingleValueMessage>(response.Content).Value}",
                            Log.Red);
                    }
                }
                else
                {
                    Console.WriteLine($"Unknown command: {command}!", Log.Red);
                }
            }
        }
Exemplo n.º 9
0
        private void _ProcessMessage(object rawMessage, object tag)
        {
            User user = tag as User;

            if (user == null)
            {
                return;
            }
            try
            {
                if (!(rawMessage is RemoteControlSystem.ClientMessage.PingMessage))
                {
                    if (rawMessage is LoginMessage)
                    {
                        LoginMessage loginMessage = rawMessage as LoginMessage;
                        if (user.IsValid)
                        {
                            throw new ArgumentException("Cannot login twice - " + loginMessage.Account);
                        }
                        this.Login(user, loginMessage.Account, loginMessage.Password);
                    }
                    else if (rawMessage is NotifyMessage)
                    {
                        this.CheckAuthority(user, Authority.Supervisor);
                        this.NotifyMessage(user, rawMessage as NotifyMessage);
                    }
                    else if (rawMessage is ChangeMyPasswordMessage)
                    {
                        this.CheckAuthority(user, Authority.UserMonitor);
                        ChangeMyPasswordMessage changeMyPasswordMessage = rawMessage as ChangeMyPasswordMessage;
                        this.ChangeMyPassword(user, changeMyPasswordMessage.OldPassword, changeMyPasswordMessage.NewPassword);
                    }
                    else if (rawMessage is GetUserListMessage)
                    {
                        this.CheckAuthority(user, Authority.Supervisor);
                        this.GetUserList(user);
                    }
                    else if (rawMessage is AddUserMessage)
                    {
                        this.CheckAuthority(user, Authority.Supervisor);
                        AddUserMessage addUserMessage = rawMessage as AddUserMessage;
                        this.AddUser(user, addUserMessage.Account, addUserMessage.Password, addUserMessage.Authority);
                    }
                    else if (rawMessage is RemoveUserMessage)
                    {
                        this.CheckAuthority(user, Authority.Supervisor);
                        RemoveUserMessage removeUserMessage = rawMessage as RemoveUserMessage;
                        this.RemoveUser(user, removeUserMessage.Account);
                    }
                    else if (rawMessage is ChangePasswordMessage)
                    {
                        this.CheckAuthority(user, Authority.Supervisor);
                        ChangePasswordMessage changePasswordMessage = rawMessage as ChangePasswordMessage;
                        this.ChangePassword(user, changePasswordMessage.Account, changePasswordMessage.NewPassword);
                    }
                    else if (rawMessage is ChangeAuthorityMessage)
                    {
                        this.CheckAuthority(user, Authority.Supervisor);
                        ChangeAuthorityMessage changeAuthorityMessage = rawMessage as ChangeAuthorityMessage;
                        this.ChangeAuthority(user, changeAuthorityMessage.Account, changeAuthorityMessage.Authority);
                    }
                    else if (rawMessage is GetUserAuthMesssage)
                    {
                        this.CheckAuthority(user, Authority.UserWatcher);
                        this.GetUserAuthority(user, rawMessage as GetUserAuthMesssage);
                    }
                    else if (rawMessage is ControlEnterMessage)
                    {
                        this.CheckAuthority(user, Authority.ChiefGM);
                        this.ControlEnter(user);
                    }
                    else if (rawMessage is ControlFinishMessage)
                    {
                        this.CheckMutex(user);
                        this.ControlFinish(user);
                    }
                    else if (rawMessage is ControlRequestMessage)
                    {
                        this.CheckAuthority(user, Authority.UserKicker);
                        ControlRequestMessage controlRequestMessage = rawMessage as ControlRequestMessage;
                        this.SendControlProtocol(user, controlRequestMessage.Packet, controlRequestMessage.IDs);
                    }
                    else if (rawMessage is WorkGroupChangeMessage)
                    {
                        this.CheckMutex(user);
                        WorkGroupChangeMessage workGroupChangeMessage = rawMessage as WorkGroupChangeMessage;
                        this.WorkGroupChange(user, workGroupChangeMessage.WorkGroup);
                    }
                    else if (rawMessage is ServerGroupChangeMessage)
                    {
                        this.CheckMutex(user);
                        ServerGroupChangeMessage serverGroupChangeMessage = rawMessage as ServerGroupChangeMessage;
                        this.ServerGroupChange(user, serverGroupChangeMessage.ServerGroup);
                    }
                    else if (rawMessage is TemplateChangeMessage)
                    {
                        this.CheckMutex(user);
                        TemplateChangeMessage templateChangeMessage = rawMessage as TemplateChangeMessage;
                        this.TemplateChange(user, templateChangeMessage.Template);
                    }
                    else if (rawMessage is ChildProcessLogRequestMessage)
                    {
                        ChildProcessLogRequestMessage childProcessLogRequestMessage = rawMessage as ChildProcessLogRequestMessage;
                        this.SendFunctionProtocol(user, SerializeWriter.ToBinary <ChildProcessLogRequestMessage>(childProcessLogRequestMessage).Bytes, childProcessLogRequestMessage.ClientID);
                    }
                    else if (rawMessage is ChildProcessLogListRequestMessage)
                    {
                        ChildProcessLogListRequestMessage childProcessLogListRequestMessage = rawMessage as ChildProcessLogListRequestMessage;
                        this.SendFunctionProtocol(user, SerializeWriter.ToBinary <ChildProcessLogListRequestMessage>(childProcessLogListRequestMessage).Bytes, childProcessLogListRequestMessage.ClientID);
                    }
                    else if (rawMessage is ChildProcessLogConnectMessage)
                    {
                        ChildProcessLogConnectMessage childProcessLogConnectMessage = rawMessage as ChildProcessLogConnectMessage;
                        this.logManager.AddListener(user, childProcessLogConnectMessage.ClientID, childProcessLogConnectMessage.ProcessName, childProcessLogConnectMessage.ProcessID);
                    }
                    else if (rawMessage is ChildProcessLogDisconnectMessage)
                    {
                        ChildProcessLogDisconnectMessage childProcessLogDisconnectMessage = rawMessage as ChildProcessLogDisconnectMessage;
                        this.logManager.RemoveListener(user, childProcessLogDisconnectMessage.ClientID, childProcessLogDisconnectMessage.ProcessName, childProcessLogDisconnectMessage.ProcessID);
                    }
                    else
                    {
                        if (!(rawMessage is ExeInfoRequestMessage))
                        {
                            throw new RCServerException("Invalid packet! try to update latest version");
                        }
                        ExeInfoRequestMessage exeInfoRequestMessage = rawMessage as ExeInfoRequestMessage;
                        this.SendFunctionProtocol(user, SerializeWriter.ToBinary <ExeInfoRequestMessage>(exeInfoRequestMessage).Bytes, exeInfoRequestMessage.ClientID);
                    }
                }
            }
            catch (RCServerException ex)
            {
                this.NotifyMessage(user, MessageType.Error, ex.Message, new object[0]);
            }
            catch (Exception ex2)
            {
                if (rawMessage == null)
                {
                    this.NotifyMessage(MessageType.Message, ex2.ToString(), new object[0]);
                }
                else
                {
                    IPAddress address = user.Connection.RemoteEndPoint.Address;
                    this.NotifyMessage(MessageType.Message, "[{0}/{1}] - {2}", new object[]
                    {
                        user.ClientId,
                        address.ToString(),
                        ex2.ToString()
                    });
                    user.Connection.Disconnect();
                }
            }
        }