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" });
        }
Example #2
0
        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"));
        }
Example #3
0
        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"
            }));
        }
Example #4
0
        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();
        }