예제 #1
0
 public UserModel(UserRegistrationDto registrationDto)
 {
     // RuleEngine engine = new RuleEngine();
     // https://msdn.microsoft.com/pl-pl/library/aa561216.aspx
     Username = registrationDto.Username;
     Email    = registrationDto.Email;
     Password = MdoSecurity.CreateHashedPassword(registrationDto.Password);
     Secret   = MdoSecurity.CreateSecret();
 }
예제 #2
0
        private void RegisterUser()
        {
            Post["/register"] = o =>
            {
                logger.Info("POST /register invoked");
                var model = this.Bind <UserRegistrationDto>();

                if (model != null)
                {
                    try
                    {
                        var usernameExists = userRepository.GetByName(model.Username);
                        if (usernameExists != null)
                        {
                            logger.Debug("username {0} already exists.", model.Username);
                            return(ReturnInvalidInput("Username already exists"));
                        }

                        var emailUsed = userRepository.GetByEmail(model.Email);
                        if (emailUsed != null)
                        {
                            logger.Debug("email {0} already exists.", model.Email);
                            return(ReturnInvalidInput("Provided email is already used"));
                        }

                        if (!MdoSecurity.IsPsswordValid(model.Password))
                        {
                            logger.Debug("invalid password.");
                            return(ReturnInvalidInput("Password is to short"));
                        }

                        var user = new UserModel(model);
                        userRepository.CreateUser(user);
                    }
                    catch (Exception e)
                    {
                        logger.Error(e, "Could not add new user. Server error: {0}. ", e.Message);
                        return(Response.AsJson(new ResponseMessage()
                        {
                            Message = "Could not add user"
                        }, HttpStatusCode.InternalServerError));
                    }

                    return(Response.AsJson(new ResponseMessage()
                    {
                        Message = "Registration Successfull"
                    }));
                }

                logger.Debug("problem with parsing data from request body.");
                return(Response.AsJson(new ResponseMessage()
                {
                    Message = "Cannot process passed data. Most likely invalid format"
                }, HttpStatusCode.BadRequest));
            };
        }
예제 #3
0
        private void PopulateUsers()
        {
            var passwordToStore = MdoSecurity.CreateHashedPassword(StdPassword);

            Users.Add(new UserEntity()
            {
                Email    = StdEmail,
                Username = StdUsername,
                UserId   = StdId,
                Password = passwordToStore
            });
        }
예제 #4
0
        static UserWarehouse()
        {
            var passwordToStore = MdoSecurity.CreateHashedPassword(StdPassword);

            Users.Add(new UserEntity()
            {
                Email    = StdEmail,
                Username = StdUsername,
                UserId   = StdId,
                Password = passwordToStore
            });
        }
예제 #5
0
        private void LoginUser()
        {
            Post["/login"] = o =>
            {
                try
                {
                    logger.Info("POST /login invoked");
                    var model = this.Bind <LoginDto>();

                    var user = userRepository.GetUser(model.UsernameOrEmail);
                    if (user == null)
                    {
                        logger.Debug("Cant find user/email {0}, login failed", model.UsernameOrEmail);
                        return(LoginFailResponse());
                    }

                    if (MdoSecurity.CheckPassword(model.Password, user.Password))
                    {
                        return(Response.AsJson(new
                        {
                            Message = "Login successful",
                            user.Username,
                            user.Secret,
                            user.Roles
                        }));
                    }
                }
                catch (Exception e)
                {
                    logger.Error(e, "Login failed. Server error {0}", e.Message);
                    return(LoginFailResponse());
                }

                return(Response.AsJson(""));
            };
        }