コード例 #1
0
        protected async Task <ActionResult> RegistrarUsuario(InfoUserViewModel infoUser)
        {
            var user = new IdentityUser
            {
                UserName       = infoUser.Email,
                Email          = infoUser.Email,
                EmailConfirmed = true
            };

            var result = await _userManager.CreateAsync(user, infoUser.Senha);

            if (!result.Succeeded)
            {
                return(BadRequest(new { result.Errors }));
            }

            if (infoUser.Role == RoleType.ADMINISTRADOR)
            {
                await _userManager.AddToRoleAsync(user, "Administrador");
            }
            else
            {
                await _userManager.AddToRoleAsync(user, "Usuario");
            }

            await _signInManager.SignInAsync(user, false);

            return(Ok());
        }
コード例 #2
0
        public async Task <JObject> Details(string viewType, string id = null)
        {
            switch (viewType)
            {
            case "be":
                if (!string.IsNullOrEmpty(id))
                {
                    var beResult = await BEUserViewModel.Repository.GetSingleModelAsync(
                        model => model.Id == id).ConfigureAwait(false);

                    beResult.Data.Specificulture = _lang;
                    return(JObject.FromObject(beResult));
                }
                else
                {
                    var model = new SiocCmsUser()
                    {
                        Status = (int)SWStatus.Preview
                    };

                    RepositoryResponse <BEUserViewModel> result = new RepositoryResponse <BEUserViewModel>()
                    {
                        IsSucceed = true,
                        Data      = await BEUserViewModel.InitViewAsync(model)
                    };
                    result.Data.Specificulture = _lang;
                    return(JObject.FromObject(result));
                }

            default:
                if (!string.IsNullOrEmpty(id))
                {
                    var beResult = await InfoUserViewModel.Repository.GetSingleModelAsync(
                        model => model.Id == id).ConfigureAwait(false);

                    beResult.Data.Specificulture = _lang;
                    return(JObject.FromObject(beResult));
                }
                else
                {
                    var model = new SiocCmsUser()
                    {
                        Status = (int)SWStatus.Preview
                    };

                    RepositoryResponse <InfoUserViewModel> result = new RepositoryResponse <InfoUserViewModel>()
                    {
                        IsSucceed = true,
                        Data      = await InfoUserViewModel.InitViewAsync(model)
                    };
                    result.Data.Specificulture = _lang;
                    return(JObject.FromObject(result));
                }
            }
        }
コード例 #3
0
        public async Task <RepositoryResponse <InfoUserViewModel> > Save(
            [FromBody] InfoUserViewModel model)
        {
            if (model != null)
            {
                var result = await model.SaveModelAsync(true).ConfigureAwait(false);

                return(result);
            }
            return(new RepositoryResponse <InfoUserViewModel>());
        }
コード例 #4
0
        public async Task <IActionResult> RegisterSuperAdmin(RegisterViewModel model, string returnUrl = null)
        {
            var superAdmin = await _userManager.GetUsersInRoleAsync("SuperAdmin");

            if (superAdmin.Count > 0)
            {
                return(RedirectToAction("Register"));
            }
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName  = model.UserName,
                    Email     = model.Email,
                    NickName  = model.Email,
                    FirstName = model.Email,
                    LastName  = model.Email
                };

                var result = await _userManager.CreateAsync(user, model.Password).ConfigureAwait(false);

                await _userManager.AddToRoleAsync(user, "SuperAdmin");

                if (result.Succeeded)
                {
                    // Save to cms db context
                    InfoUserViewModel cmsUser = new InfoUserViewModel()
                    {
                        Id              = user.Id,
                        Username        = model.UserName,
                        FirstName       = model.FirstName,
                        LastName        = model.LastName,
                        CreatedDateTime = DateTime.UtcNow
                    };
                    await cmsUser.SaveModelAsync().ConfigureAwait(false);

                    await _signInManager.SignInAsync(user, isPersistent : false).ConfigureAwait(false);

                    _logger.LogInformation(3, "User created a new account with password.");
                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #5
0
        public virtual async Task <ActionResult> Desativar(InfoUserViewModel infoUser)
        {
            var user = await _userManager.FindByEmailAsync(infoUser.Email);

            if (!user.LockoutEnabled)
            {
                var result = await _userManager.SetLockoutEnabledAsync(user, true);

                if (!result.Succeeded)
                {
                    return(BadRequest(new { Errors = result.Errors }));
                }
            }

            return(Ok());
        }
コード例 #6
0
        public async Task <ActionResult> Logar(InfoUserViewModel loginUser)
        {
            var result = await _signInManager.PasswordSignInAsync(loginUser.Email, loginUser.Senha, false, true);

            if (result.Succeeded)
            {
                return(Ok(await GerarJwt(loginUser.Email)));
            }

            if (result.IsLockedOut)
            {
                return(BadRequest(new { Errors = new[] { "LockedOut" } }));
            }

            return(Ok(loginUser));
        }
コード例 #7
0
        public async Task <RepositoryResponse <AccessTokenViewModel> > Register(RegisterViewModel model)
        {
            RepositoryResponse <AccessTokenViewModel> result = new RepositoryResponse <AccessTokenViewModel>();

            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    UserName  = model.UserName,
                    Email     = model.Email,
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    JoinDate  = DateTime.UtcNow
                };
                var createResult = await _userManager.CreateAsync(user, password : model.Password).ConfigureAwait(false);

                if (createResult.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    user = await _userManager.FindByEmailAsync(model.Email).ConfigureAwait(false);

                    // Save to cms db context
                    InfoUserViewModel cmsUser = new InfoUserViewModel()
                    {
                        Id              = user.Id,
                        Username        = model.UserName,
                        FirstName       = model.FirstName,
                        LastName        = model.LastName,
                        CreatedDateTime = DateTime.UtcNow
                    };
                    await cmsUser.SaveModelAsync();

                    var token = await GenerateAccessTokenAsync(user);

                    if (token != null)
                    {
                        result.IsSucceed = true;
                        result.Data      = token;
                        _logger.LogInformation("User logged in.");
                        return(result);
                    }
                    else
                    {
                        return(result);
                    }

                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                    //await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl);

                    //await _signInManager.SignInAsync(user, isPersistent: false);
                    //_logger.LogInformation("User created a new account with password.");
                }
                else
                {
                    foreach (var error in createResult.Errors)
                    {
                        result.Errors.Add(error.Description);
                    }
                    return(result);
                }
            }

            return(result);
        }
コード例 #8
0
        public Task <ActionResult> Registrar(InfoUserViewModel infoUser)
        {
            infoUser.Role = RoleType.USUARIO;

            return(RegistrarUsuario(infoUser));
        }
コード例 #9
0
        public Task <ActionResult> Registrar(InfoUserViewModel infoUser)
        {
            infoUser.Role = RoleType.ADMINISTRADOR;

            return(RegistrarUsuario(infoUser));
        }