public virtual async Task <IActionResult> Post([FromBody] ChangePasswordMessage body)
        {
            if (body == null)
            {
                throw new ArgumentException("Invalid body");
            }

            if (string.IsNullOrEmpty(body.OldPassword))
            {
                ModelState.AddModelError("old_password", "Tieto on pakollinen.");
            }

            if (string.IsNullOrEmpty(body.NewPassword))
            {
                ModelState.AddModelError("new_password", "Tieto on pakollinen.");
            }

            if (string.IsNullOrEmpty(body.NewPassword2))
            {
                ModelState.AddModelError("new_password2", "Tieto on pakollinen.");
            }
            else
            {
                if (body.NewPassword != body.NewPassword2)
                {
                    ModelState.AddModelError("new_password", "Tarkista salasana.");
                }
            }

            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            var succeed = true;

            var api = "users/" + body.UserId + "/change_password/";

            JObject result;
            JObject obj = Serialize(body);

            try
            {
                result = await PutJson(api, obj);
            }
            catch (DjangoFailedException)
            {
                succeed = false;
            }

            ChangePasswordReply r = new ChangePasswordReply {
                Succeed = succeed
            };

            return(Json(r));
        }
示例#2
0
        /// <summary>
        /// Сменить пароль.
        /// </summary>
        /// <param name="newPassword">Новый пароль.</param>
        public void ChangePassword(string newPassword)
        {
            var msg = new ChangePasswordMessage
            {
                NewPassword   = newPassword.To <SecureString>(),
                TransactionId = TransactionIdGenerator.GetNextId()
            };

            SendInMessage(msg);
        }
示例#3
0
        public bool ChangePassword(string sessionKey, string oldPassword, string newPassword)
        {
            ClientSideChannel channel = new ClientSideChannel("DiskLockerIpcChannel");

            var message = new ChangePasswordMessage();

            message.SessionKey  = sessionKey;
            message.OldPassword = oldPassword;
            message.NewPassword = newPassword;

            var result = ( OperationResult )channel.SendMessageAndWaitAnswer(( uint )MessageCodes.ChangePasswordCode, message);

            return(result.Value);
        }
示例#4
0
        /// <summary>
        /// Сменить пароль.
        /// </summary>
        /// <param name="adapterType">Тип адаптера, в который необходимо отправить сообщение о смене пароля.</param>
        /// <param name="newPassword">Новый пароль.</param>
        public void ChangePassword(MessageAdapterTypes adapterType, string newPassword)
        {
            var msg = new ChangePasswordMessage
            {
                NewPassword   = newPassword.To <SecureString>(),
                TransactionId = TransactionIdGenerator.GetNextId()
            };

            switch (adapterType)
            {
            case MessageAdapterTypes.Transaction:
                TransactionAdapter.SendInMessage(msg);
                break;

            case MessageAdapterTypes.MarketData:
                MarketDataAdapter.SendInMessage(msg);
                break;

            default:
                throw new ArgumentOutOfRangeException("adapterType");
            }
        }
示例#5
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();
                }
            }
        }