Example #1
0
        public string Register(RegisterInputType registerInput)
        {
            string errorMessage = ResigstrationValidations(registerInput);

            if (!string.IsNullOrEmpty(errorMessage))
            {
                return(errorMessage);
            }

            var newUser = new User
            {
                EmailAddress = registerInput.EmailAddress,
                FirstName    = registerInput.FirstName,
                LastName     = registerInput.LastName,
                Password     = PasswordHash(registerInput.ConfirmPassword)
            };

            _authContext.User.Add(newUser);
            _authContext.SaveChanges();

            // default role on registration
            var newUserRoles = new UserRoles
            {
                Name   = "admin",
                UserId = newUser.UserId
            };

            _authContext.UserRoles.Add(newUserRoles);
            _authContext.SaveChanges();

            return("Registration success");
        }
Example #2
0
        private string ResigstrationValidations(RegisterInputType registerInput)
        {
            if (string.IsNullOrEmpty(registerInput.EmailAddress))
            {
                return("Eamil can't be empty");
            }

            if (string.IsNullOrEmpty(registerInput.Password) ||
                string.IsNullOrEmpty(registerInput.ConfirmPassword))
            {
                return("Password Or ConfirmPasswor Can't be empty");
            }

            if (registerInput.Password != registerInput.ConfirmPassword)
            {
                return("Invalid confirm password");
            }

            string emailRules = @"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";

            if (!Regex.IsMatch(registerInput.EmailAddress, emailRules))
            {
                return("Not a valid email");
            }

            // atleast one lower case letter
            // atleast one upper case letter
            // atleast one special character
            // atleast one number
            // atleast 8 character length
            string passwordRules = @"^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!*@#$%^&+=]).*$";

            if (!Regex.IsMatch(registerInput.Password, passwordRules))
            {
                return("Not a valid password");
            }

            return(string.Empty);
        }
Example #3
0
        public Mutation(IUserService userService, IPasswordManager passwordManager, IEmailVerificationService verification, ISessionService sessionService, IHttpContextAccessor contextAccessor)
        {
            FieldAsync <NonNullGraphType <UserType>, User>("register",
                                                           arguments: new QueryArguments(RegisterInputType.BuildArgument()),
                                                           resolve: x => userService.Create(x.GetArgument <RegisterInput>("input")));

            FieldAsync <NonNullGraphType <StringGraphType>, string>("refreshToken",
                                                                    resolve: x => sessionService.Refresh(contextAccessor.MustGetBearerToken()));

            FieldAsync <NonNullGraphType <TokensType>, LoginSuccessResponse>("login",
                                                                             resolve: x => sessionService.Login(contextAccessor.GetLoginRequest()));

            FieldAsync <NonNullGraphType <UserType>, User>("verifyEmail",
                                                           arguments: new QueryArguments(VerifyEmailInputType.BuildArgument()),
                                                           resolve: x => verification.ConfirmEmail(x.GetArgument <VerifyEmailInput>("input")));

            FieldAsync <NonNullGraphType <ResultType>, Result>("sendActivationEmail",
                                                               arguments: new QueryArguments(new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "login"
            }),
                                                               resolve: x => verification.SendActivationEmail(x.GetArgument <string>("login")));

            FieldAsync <NonNullGraphType <ResultType>, Result>("requestPasswordReset",
                                                               arguments: new QueryArguments(new QueryArgument <NonNullGraphType <StringGraphType> > {
                Name = "login"
            }),
                                                               resolve: x => passwordManager.RequestPasswordReset(x.GetArgument <string>("login")));

            FieldAsync <NonNullGraphType <UserType>, User>("changePassword",
                                                           arguments: new QueryArguments(ChangePasswordInput.BuildArgument()),
                                                           resolve: x => passwordManager.ChangePassword(contextAccessor.GetUserId(), x.GetArgument <ChangePasswordRequest>("input"))).Authorize();

            FieldAsync <NonNullGraphType <UserType>, User>("resetPassword",
                                                           arguments: new QueryArguments(ResetPasswordInput.BuildArgument()),
                                                           resolve: x => passwordManager.ResetPassword(x.GetArgument <ResetPasswordRequest>("input")));
        }
Example #4
0
 public string Register([Service] IAuthLogic authLogic, RegisterInputType registerInput)
 {
     return(authLogic.Register(registerInput));
 }