Beispiel #1
0
        public async Task <IActionResult> CreateAdmin([FromBody] AdminCreateRequest rq)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (!User.IsInRole("Admin"))
            {
                return(StatusCode(403, "You're not admin"));
            }
            var rs = await _adminAppService.CreateAdmin(rq);

            switch (rs)
            {
            case 1:
                return(Ok("Create Admin OK"));

            case -1:
                return(BadRequest("Username exist"));

            case -2:
                return(BadRequest("Password is invalid"));

            default:
                return(BadRequest("Create Admin FAILED"));
            }
        }
Beispiel #2
0
        //public async Task<IEnumerable<UserDto>> GetAllUser()
        //{
        //    var rs = new List<UserDto>();
        //    var query = _userManager.Users;
        //    var data = await query.Select(x => new UserDto()
        //    {
        //        Name = x.FullName,
        //        isActived = x.IsActive.ToString()
        //    }).ToListAsync();
        //    return data;
        //}
        public async Task <int> CreateAdmin(AdminCreateRequest rq)
        {
            var checkUser = _userManager.Users.FirstOrDefault(u => u.UserName == rq.UserName);

            if (checkUser != null)
            {
                return(-1);
            }
            var hasNumber        = new Regex(@"[0-9]+");
            var hasUpperChar     = new Regex(@"[A-Z]+");
            var hasMinimum8Chars = new Regex(@".{8,}");

            var isValidated = hasNumber.IsMatch(rq.Password) && hasUpperChar.IsMatch(rq.Password) && hasMinimum8Chars.IsMatch(rq.Password);

            if (!isValidated)
            {
                return(-2);
            }
            User user = new User()
            {
                UserName     = rq.UserName,
                Surname      = rq.Name,
                Name         = rq.Name,
                IsActive     = true,
                EmailAddress = rq.UserName + "@gmail.com"
            };

            var result = await _userManager.CreateAsync(user, rq.Password);

            if (rq.RoleNames != null)
            {
                rq.RoleNames.Add("Admin");
                CheckErrors(await _userManager.SetRolesAsync(user, rq.RoleNames.ToArray()));
            }
            else
            {
                var l = new List <string>();
                l.Add("Admin");
                CheckErrors(await _userManager.SetRolesAsync(user, l.ToArray()));
            }
            if (result.Succeeded)
            {
                return(1);
            }
            else
            {
                return(0);
            }
        }