Ejemplo n.º 1
0
        public async Task <IActionResult> Register([FromBody] RegisterModelDto registerModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new BadRequestError("Password and username required.")));
            }

            var newUser = new User()
            {
                FirstName = registerModel.FirstName.ToLowerInvariant(),
                Email     = registerModel.Email.ToLowerInvariant(),
                Username  = registerModel.Username.ToLowerInvariant(),
            };


            //  Username unique?
            var isUsernameUnique = await _wpbService.UsernameUnique(newUser.Username);

            if (!isUsernameUnique)
            {
                return(BadRequest(new BadRequestError($"Username: {registerModel.Username} is already in use.")));
            }

            //  Email unique?
            var isEmailUnique = await _wpbService.EmailUnique(newUser.Email);

            if (!isEmailUnique)
            {
                return(BadRequest(new BadRequestError($"Email: {registerModel.Email} is already in use.")));
            }

            //  Add user
            await _wpbService.CreateUserAsync(newUser, registerModel.Password);

            //  Build new user token
            var tokenString = GenerateToken(newUser);


            // This is just a regular member so we don't need to create any claims
            //  Add user claim

            /*var newClaim = new UserClaim()
             * {
             *  UserId = newUser.Id,
             *  ClaimName = WpbClaims.ReadTeamData
             * };*/

            return(Ok(
                       new
            {
                Id = newUser.Id.ToString(),
                newUser.Username,
                newUser.FirstName,
                newUser.Email,
                Token = tokenString
            }));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///  Run once only!!
        /// </summary>
        /// <returns></returns>
        private async Task BuildAdmin()
        {
            var user = new User()
            {
                Email     = "",
                FirstName = "",
                Username  = ""
            };
            var password = "";


            //  Add user
            await _wpbService.CreateUserAsync(user, password);

            var claimsList = new List <UserClaim>()
            {
                new UserClaim()
                {
                    UserId    = user.Id,
                    ClaimName = WpbClaims.ReadEditTeam
                },
                new UserClaim()
                {
                    UserId    = user.Id,
                    ClaimName = WpbClaims.ReadEditTeamsAll
                },
                new UserClaim()
                {
                    UserId    = user.Id,
                    ClaimName = WpbClaims.RunReadReportsAll
                },
                new UserClaim()
                {
                    UserId    = user.Id,
                    ClaimName = WpbClaims.RunReadReportsTeam
                }
            };

            foreach (var claim in claimsList)
            {
                await _wpbService.AddUserClaimAsync(claim);
            }
        }