示例#1
0
        public async Task <IActionResult> ChangePassword(UserModel model)
        {
            var calculationService  = new TrafficCalculationService();
            var changePasswordModel = model.ChangePasswordModel;

            if (changePasswordModel.Username.Equals("admin"))
            {
                return(View("Admin", new UserModel()
                {
                    ChangePasswordMessage = "Password for the admin cannot be changed"
                }));
            }

            if (changePasswordModel.Password == null || changePasswordModel.Password.Length < 6)
            {
                return(View("Admin", new UserModel()
                {
                    CreateMessage = "Password needs to be 6 characters."
                }));
            }


            var apiKey = GetApiKey();
            var result = await calculationService.ChangePassword(changePasswordModel.Username, apiKey, changePasswordModel.Password);

            return(View("Admin", new UserModel()
            {
                ChangePasswordMessage = result
            }));
        }
示例#2
0
        public async Task <IActionResult> CreateUser(UserModel model)
        {
            var calculationService = new TrafficCalculationService();
            var createModel        = model.CreateModel;

            if (createModel.Username == null || createModel.Username.Length < 4)
            {
                return(View("Admin", new UserModel()
                {
                    CreateMessage = "Username needs to be 4 characters."
                }));
            }

            if (createModel.Password == null || createModel.Password.Length < 6)
            {
                return(View("Admin", new UserModel()
                {
                    CreateMessage = "Password needs to be 6 characters."
                }));
            }

            var adminString = createModel.Admin ? "true" : "false";
            var apiKey      = GetApiKey();
            var result      = await calculationService.CreateUser(createModel.Username, createModel.Password, createModel.Name, adminString, apiKey);

            return(View("Admin", new UserModel()
            {
                CreateMessage = result
            }));
        }
示例#3
0
        public async Task <IActionResult> LoginAction(LoginModel model)
        {
            if (model.Username == null || model.Password == null || model.Username.Length < 4 || model.Password.Length < 6)
            {
                return(View("Login", new LoginModel()
                {
                    Message = "Invalid username or password."
                }));
            }

            var calculationService = new TrafficCalculationService();
            var user = await calculationService.Login(model.Username, model.Password);

            if (user != null)
            {
                HttpContext.Session.Set("admin", Encoding.ASCII.GetBytes(user.admin.ToString()));
                HttpContext.Session.Set("apiKey", Encoding.ASCII.GetBytes(user.apiKey));
                return(RedirectToAction("Home", "Traffic"));
            }

            return(View("Login", new LoginModel()
            {
                Message = "Login failed."
            }));
        }
示例#4
0
        public async Task <IActionResult> DeleteUser(UserModel model)
        {
            var calculationService = new TrafficCalculationService();
            var deleteModel        = model.DeleteModel;

            if (deleteModel.Username.Equals("admin"))
            {
                return(View("Admin", new UserModel()
                {
                    DeleteMessage = "The admin user can't be deleted."
                }));
            }

            var apiKey = GetApiKey();
            var result = await calculationService.DeleteUser(deleteModel.Username, apiKey);

            return(View("Admin", new UserModel()
            {
                DeleteMessage = result
            }));
        }