Exemplo n.º 1
0
        public async Task <ActionResult> Register([FromBody] RegisterRequest registerRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            byte[] passwordHash, passwordSalt;
            passwordHandler.CreatePasswordHash(registerRequest.Password, out passwordHash, out passwordSalt);
            var user = registerRequest.ToUser();

            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;

            if (await userRepository.AddUser(user) > 0)
            {
                return(Ok(new RegisterResponse {
                    Success = true, Message = null
                }));
            }
            else
            {
                return(Ok(new RegisterResponse {
                    Success = false, Message = "Something went wrong, please try again"
                }));
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult <JwtToken> > Register([FromBody] RegisterRequest request)
        {
            User user = request.ToUser();

            user.Permissions = _permissions.CurrentValue.NewUser;
            // If no users exists, the new one will be an admin. Give it every permissions.
            if (await _users.GetOrDefault(where : x => true) == null)
            {
                user.Permissions = PermissionOption.Admin;
            }
            try
            {
                await _users.Create(user);
            }
            catch (DuplicatedItemException)
            {
                return(Conflict(new RequestError("A user already exists with this username.")));
            }

            return(new JwtToken(
                       _token.CreateAccessToken(user, out TimeSpan expireIn),
                       await _token.CreateRefreshToken(user),
                       expireIn
                       ));
        }
Exemplo n.º 3
0
        public async Task <ActionResult <RegisterResult> > Register([FromBody] RegisterRequest request)
        {
            var res = await userService.Register(request.ToUser(), request.Password);

            if (res.Success)
            {
                return(Ok(res));
            }
            return(BadRequest(res));
        }
Exemplo n.º 4
0
        public ActionResult AddUser(RegisterRequest UserVm, bool Profile = false)
        {
            int userId = 0;

            if (Profile)
            {
                UserVm.RoleId = user.RoleId;
                UserVm.Id     = user.Id;
            }

            if (ModelState.IsValid)
            {
                if (UserVm.ImageFile != null)
                {
                    string fn            = Path.GetFileName(UserVm.ImageFile.FileName);
                    string fileExtension = fn.Remove(0, fn.IndexOf('.') + 1);
                    fn = UserVm.Id + "_." + fileExtension;
                    string SaveLocation = "~/Public/Files/ProfileImages/";
                    UserVm.ImagePath = SaveLocation + fn;
                    string FilePath = Server.MapPath(SaveLocation);
                    UserVm.ImageFile.SaveAs(Path.Combine(FilePath, fn));
                }
                var u = RegisterRequest.ToUser(UserVm);
                u.EmailVerified = true;
                ScheduleContext.Users.AddOrUpdate(x => x.Id, u);

                userId = u.Id;
                ScheduleContext.SaveChanges();
            }
            if (Profile)
            {
                Session["User"] = new SessionUser(ScheduleContext.Users.FirstOrDefault(x => x.Id == user.Id));
            }
            if (UserVm.Id == 0)
            {
                Notify("Success", "Successfully Added", "User Added Successfully", IsRedirectMessage: true);
            }
            else
            {
                Notify("Success", "Successfully Updated", "User Updated Successfully", IsRedirectMessage: true);
            }

            if (Profile)
            {
                return(RedirectToRoute("Profile"));
            }
            else
            {
                return(RedirectToRoute("AddUser", new { ID = userId }));
            }
        }
Exemplo n.º 5
0
        public async Task Create(RegisterRequest user)
        {
            // validation
            if (await _context.Users.AnyAsync(x => x.Email == user.Email))
            {
                throw new InvalidOperationException("Email \"" + user.Email + "\" is already taken");
            }
            try
            {
                await _context.AddAsync(user.ToUser());

                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Exemplo n.º 6
0
        public async Task <IActionResult> Create(RegisterRequest request)
        {
            if (request == null)
            {
                return(BadRequest());
            }


            try
            {
                var user = await _userService.Create(request.ToUser(), request.Password);

                return(Ok(new { id = user.Id }));
            }
            catch (AppException e)
            {
                return(BadRequest(new { error = e.Message }));
            }
        }