private Response CreateUser() { var body = Request.Body.AsString(); if (string.IsNullOrEmpty(body)) { return Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not save user, invalid JSON body" }); } var model = JsonConvert.DeserializeObject<UserManagementCreateModel>(body); if (string.IsNullOrWhiteSpace(model.Username) || string.IsNullOrWhiteSpace(model.Password)) { return Response.AsJson(new JsonResponseModel { Result = true, Message = "Please enter in a valid Username and Password" }); } var user = UserMapper.CreateUser(model.Username, model.Password, model.Claims, new UserProperties { EmailAddress = model.EmailAddress }); if (user.HasValue) { return Response.AsJson(user); } return Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not save user" }); }
private object RegisterUser(object arg) { var username = (string)Request.Form.Username; var password = (string)Request.Form.Password; var repeat = (string)Request.Form.Repeat; var email = (string)Request.Form.Email; if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password) || password != repeat) { return(Context.GetRedirect("~/login?repeatError=true")); } if (UserSetting.UsernameExists(username)) { return(Context.GetRedirect("~/login?userNameExists=true")); } if (UserSetting.EmailExists(email)) { return(Context.GetRedirect("~/login?emailExists=true")); } var userGuid = UserMapper.CreateUser(username, password, email); if (userGuid == null) { return(Context.GetRedirect("~/login?error=true&username="******"~/games")); }
private async Task <Response> CreateUser() { Analytics.TrackEventAsync(Category.UserManagement, Action.Create, "Created User", Username, CookieHelper.GetAnalyticClientId(Cookies)); var body = Request.Body.AsString(); if (string.IsNullOrEmpty(body)) { return(Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not save user, invalid JSON body" })); } var model = JsonConvert.DeserializeObject <UserManagementCreateModel>(body); if (string.IsNullOrWhiteSpace(model.Username) || string.IsNullOrWhiteSpace(model.Password)) { return(Response.AsJson(new JsonResponseModel { Result = false, Message = "Please enter in a valid Username and Password" })); } var users = await UserMapper.GetUsersAsync(); if (users.Any(x => x.UserName.Equals(model.Username, StringComparison.CurrentCultureIgnoreCase))) { return(Response.AsJson(new JsonResponseModel { Result = false, Message = $"A user with the username '{model.Username}' already exists" })); } var featuresVal = 0; var permissionsVal = 0; foreach (var feature in model.Features) { var f = (int)EnumHelper <Features> .GetValueFromName(feature); featuresVal += f; } foreach (var permission in model.Permissions) { var f = (int)EnumHelper <Permissions> .GetValueFromName(permission); permissionsVal += f; } var user = UserMapper.CreateUser(model.Username, model.Password, permissionsVal, featuresVal, new UserProperties { EmailAddress = model.EmailAddress }); if (user.HasValue) { return(Response.AsJson(MapLocalUser(UserMapper.GetUser(user.Value), DateTime.MinValue))); } return(Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not save user" })); }
public LoginModule() { Get["/login"] = _ => { { dynamic model = new ExpandoObject(); model.Errored = Request.Query.error.HasValue; var adminCreated = UserMapper.DoUsersExist(); model.AdminExists = adminCreated; return(View["Index", model]); } }; Get["/logout"] = x => this.LogoutAndRedirect(!string.IsNullOrEmpty(BaseUrl) ? $"~/{BaseUrl}/" : "~/"); Post["/login"] = x => { var username = (string)Request.Form.Username; var password = (string)Request.Form.Password; var dtOffset = (int)Request.Form.DateTimeOffset; var userId = UserMapper.ValidateUser(username, password); if (userId == null) { return(Context.GetRedirect(!string.IsNullOrEmpty(BaseUrl) ? $"~/{BaseUrl}/login?error=true&username="******"~/login?error=true&username="******"/{BaseUrl}")); } return(this.LoginAndRedirect(userId.Value, expiry)); }; Get["/register"] = x => { { dynamic model = new ExpandoObject(); model.Errored = Request.Query.error.HasValue; return(View["Register", model]); } }; Post["/register"] = x => { var username = (string)Request.Form.Username; var exists = UserMapper.DoUsersExist(); if (exists) { return(Context.GetRedirect(!string.IsNullOrEmpty(BaseUrl) ? $"~/{BaseUrl}/register?error=true" : "~/register?error=true")); } var userId = UserMapper.CreateUser(username, Request.Form.Password, new[] { "Admin" }); Session[SessionKeys.UsernameKey] = username; return(this.LoginAndRedirect((Guid)userId)); }; Get["/changepassword"] = _ => ChangePassword(); Post["/changepassword"] = _ => ChangePasswordPost(); }