public IActionResult Post([FromBody] TaskFront value)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userId = userManager.GetUserId(HttpContext.User);


            Console.WriteLine("UserID: " + userId);

            UserTask       newTask = new UserTask();
            AplicationUser appUser = _context.Users.Find(userId);

            Console.WriteLine("User found email: " + appUser.Email);
            newTask.AplicationUser = appUser;
            newTask.Deadline       = value.Deadline;
            newTask.Title          = value.Title;
            newTask.Type           = Models.Type.next;

            _context.UserTasks.Update(newTask);
            _context.SaveChanges();

            return(Ok());
        }
Exemple #2
0
        public async Task <IActionResult> Create([Bind("BiljeskaId,Datum,AplicationUserId,AktivnostId,Biljeske")] Biljeska biljeska)
        {
            if (ModelState.IsValid)
            {
                _context.Add(biljeska);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            var username     = HttpContext.User.Identity.Name;
            var vjeroucitelj = await userManager.FindByNameAsync(username);

            var vjerouciteljId = vjeroucitelj.Id;
            var users          = (from u in _context.VjerouciteljUcenik
                                  where u.VjerouciteljId == vjerouciteljId
                                  select u.UcenikId).ToList();
            var ucenici = new AplicationUser();

            foreach (var id in users)
            {
                var user = await userManager.FindByIdAsync(id);

                ucenici.Ucenici.Add(user);
            }
            ViewData["AktivnostId"]      = new SelectList(_context.Aktivnosti, "AktivnostId", "Naziv", biljeska.AktivnostId);
            ViewData["AplicationUserId"] = new SelectList(ucenici.Ucenici, "AplicationUserId", "Email", biljeska.AplicationUserId);
            return(View(biljeska));
        }
Exemple #3
0
        public async Task <IActionResult> EditProfile(AplicationUser model)
        {
            if (!ModelState.IsValid)
            {
                return(View("~/Views/MyProfile/EditProfile.cshtml", model));
            }
            var userFromDb = await _userManager.FindByIdAsync("model.Id");

            userFromDb.Name     = model.Name;
            userFromDb.Surname  = model.Surname;
            userFromDb.Email    = model.Email;
            userFromDb.Location = model.Location;
            userFromDb.Phone    = model.Phone;
            userFromDb.Password = model.Password;


            var result = await _userManager.UpdateAsync(userFromDb);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("User", "Error,user data not updated!");
                return(View("~/Views/MyProfile/EditProfile.cshtml", userFromDb));
            }

            return(RedirectToAction("Index"));
        }
Exemple #4
0
        private void CreateUser(string email, string fullName, string pass, BlogDbContext context)
        {
            var userManager = new UserManager <AplicationUser>(
                new UserStore <AplicationUser>(context));

            userManager.PasswordValidator = new PasswordValidator()
            {
                RequireDigit            = false,
                RequiredLength          = 1,
                RequireLowercase        = false,
                RequireNonLetterOrDigit = false,
                RequireUppercase        = false
            };
            var admin = new AplicationUser()
            {
                Email    = email,
                FullName = fullName,
                UserName = email
            };


            var result = userManager.Create(admin, pass);

            if (!result.Succeeded)
            {
                throw new Exception(string.Join(";", result.Errors));
            }
        }
        public ActionResult Register(Register model)
        {
            if (ModelState.IsValid)
            {
                //Kayıt işlemleri
                var user = new AplicationUser();
                user.Name     = model.Name;
                user.Surname  = model.Surname;
                user.Email    = model.Email;
                user.UserName = model.UserName;
                IdentityResult result =
                    userManager.Create(user, model.Password);
                if (result.Succeeded)
                {
                    //kullanıcıyı role ata
                    if (roleManager.RoleExists("user"))
                    {
                        userManager.AddToRole(user.Id, "user");
                    }

                    return(RedirectToAction("Login", "Account"));
                }
                else
                {
                    ModelState.AddModelError("RegisterUserError", "Kullanıcı oluşturma hatası.");
                }
            }
            return(View(model));
        }
Exemple #6
0
        public async Task <IActionResult> Create(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                AplicationUser user = new AplicationUser();
                user.UserName = model.UserName;
                user.Email    = model.Email;
                var result = await userManger.CreateAsync(user, model.Password);


                if (result.Succeeded)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    foreach (var item in result.Errors)
                    {
                        ModelState.AddModelError("", item.Description);
                    }
                }
            }


            return(View(model));
        }
        public ActionResult Login([FromBody]UsuarioDTO usuarioDTO)
        {

            ModelState.Remove("Nome");
            ModelState.Remove("ConfimacaoSenha");

            if (ModelState.IsValid)
            {
               AplicationUser usuario = _usuarioRepository.Obter(usuarioDTO.Email, usuarioDTO.Senha);

                if (usuario != null)
                {
                    return GerarToken(usuario);
                }
                else
                {
                    return NotFound("Usuario não localizado");                
                }
                
            }
            else
            {
                return UnprocessableEntity(ModelState); 
            }

        }
        public ActionResult Cadastrar([FromBody]UsuarioDTO usuarioDTO) 
        {
            if (ModelState.IsValid)
            {
                AplicationUser usuario = new AplicationUser();
                usuario.FullName = usuarioDTO.Nome;
                usuario.Email = usuarioDTO.Email;
                usuario.UserName = usuarioDTO.Email;
                var resultado = _userManager.CreateAsync(usuario, usuarioDTO.Senha).Result;

                if (!resultado.Succeeded) 
                {
                    List<string> erros = new List<string>();
                    foreach (var erro in resultado.Errors)
                    {
                        erros.Add(erro.Description);

                    }
                    return UnprocessableEntity(erros);
                }
                else
                {
                    return Ok(usuario);
                }
            }
            else
            {
                return UnprocessableEntity(ModelState);
            }
        }
        public async Task <IActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new AplicationUser()
                {
                    UserName = model.Email, Email = model.Email, City = model.City
                };
                var result = await userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    if (signInManager.IsSignedIn(User) && User.IsInRole("Admin"))
                    {
                        return(RedirectToAction("ListUsers", "Administration"));
                    }
                    await signInManager.SignInAsync(user, isPersistent : false);

                    return(RedirectToAction("Index", "Home"));
                }

                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }
            return(View());
        }
        private TokenDTO BuildToken(AplicationUser usuario)
        {
            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Email, usuario.Email),
                new Claim(JwtRegisteredClaimNames.Sub, usuario.Id),
            };
            var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("chave-api-jwt-minhas-tarefas"));
            var sign = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
            var exp = DateTime.UtcNow.AddHours(1);

            JwtSecurityToken token = new JwtSecurityToken(
                    issuer: null,
                    audience: null,
                    claims: claims,
                    expires: exp,
                    signingCredentials: sign
                );

            var refreshToken = Guid.NewGuid().ToString();

            var tokenString = new JwtSecurityTokenHandler().WriteToken(token);

            var expRefreshToken = DateTime.UtcNow.AddHours(2);

            var tokenDTO = new TokenDTO { Token = tokenString, Expiration = exp, ExpirationRefreshToken = expRefreshToken, RefreshToken = refreshToken };

            return tokenDTO;
        }
Exemple #11
0
        private List <Role> GetUserRoles(AplicationUser user, BlogDbContext context)
        {
            // Create user and role managers
            var userManager = new UserManager <AplicationUser>(
                new UserStore <AplicationUser>(context));

            var roleManager = new RoleManager <IdentityRole>(
                new RoleStore <IdentityRole>(context));

            // Get all application roles
            var roles = roleManager.Roles
                        .Select(r => r.Name)
                        .OrderBy(r => r)
                        .ToList();

            // For each application role, check if the user has it
            var userRoles = new List <Role>();

            foreach (var roleName in roles)
            {
                var role = new Role {
                    Name = roleName
                };

                if (userManager.IsInRole(user.Id, roleName))
                {
                    role.IsSelected = true;
                }

                userRoles.Add(role);
            }

            // Return a list with all roles
            return(userRoles);
        }
Exemple #12
0
        public async Task <IActionResult> Register(AplicationUser model)
        {
            if (ModelState.IsValid)
            {
                var userExist = await _userManager.FindByEmailAsync(model.Email);

                if (userExist != null)
                {
                    ModelState.AddModelError("Email", "User with this email exists");
                    return(View("Index", model));
                }

                var user = model;
                user.UserName = model.Email;


                IdentityResult result = await _userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    return(Redirect("/Login"));
                }
                else
                {
                    ModelState.AddModelError("User", "User registration failed");
                    return(View("Index", model));
                }
            }

            return(View("Index", model));
        }
Exemple #13
0
        async Task AddToRoleAdmin(AplicationUser user)
        {
            if (!await _roleManager.RoleExistsAsync("Admin"))
            {
                await _roleManager.CreateAsync(new IdentityRole("Admin"));
            }

            await _userManager.AddToRoleAsync(user, "Admin");
        }
 public List <UserTask> GetAllUserTask(AplicationUser user)
 {
     //if default tasks not contain default_user_task  add it
     if (!StorageModel.UserTasks.Exists(x => x.Id == AppConstants.DEFAULT_USER_TASK.Id))
     {
         StorageModel.UserTasks.Add(AppConstants.DEFAULT_USER_TASK);
         Save();
     }
     GetStatistics();
     return(StorageModel.UserTasks);
 }
Exemple #15
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl      = returnUrl ?? Url.Content("~/");
            ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (ModelState.IsValid)
            {
                var user = new AplicationUser {
                    UserName = Input.Email, Email = Input.Email, IsAdmin = Input.IsAdmin, Name = Input.Name
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

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

                    if (user.IsAdmin)
                    {
                        await AddToRoleAdmin(user);

                        _logger.LogInformation("User Added to admin group");
                    }

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                        protocol: Request.Scheme);

                    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                                                      $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    {
                        return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl }));
                    }
                    else
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
        public List <Tarefa> Resturacao(AplicationUser usuario, DateTime dataUltimaSincronizacao)
        {
            var query = _banco.Tarefas.Where(a => a.UsuarioId == usuario.Id).AsQueryable();

            if (dataUltimaSincronizacao != null)
            {
                query.Where(a => a.Criado >= dataUltimaSincronizacao || a.Atualizado >= dataUltimaSincronizacao);
            }

            return(query.ToList <Tarefa>());
        }
        public async Task <IActionResult> Create(/*[Bind("PrisutnostId,Datum,AplicationUserId,AktivnostId,IsPrisutan")]*/ VjerouciteljListaPrisutnosti prisutnosti)
        {
            if (ModelState.IsValid)
            {
                foreach (var prisutnost in prisutnosti.UceniciIsSelected)
                {
                    if (prisutnost.IsSelected == true)
                    {
                        var user = await userManager.FindByEmailAsync(prisutnost.Ucenik);

                        var tempPrisutnost = new Prisutnost
                        {
                            AktivnostId      = prisutnosti.TempPrisutnost.AktivnostId,
                            PrisutnostId     = prisutnosti.TempPrisutnost.PrisutnostId,
                            AplicationUserId = user.AplicationUserId,
                            IsPrisutan       = prisutnosti.TempPrisutnost.IsPrisutan,
                            Datum            = prisutnosti.TempPrisutnost.Datum
                        };
                        _context.Add(tempPrisutnost);
                    }
                    else
                    {
                        ViewBag.Error = $"Niste odabrali nijednog ucenika!";
                    }
                }

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            var username     = HttpContext.User.Identity.Name;
            var vjeroucitelj = await userManager.FindByNameAsync(username);

            var vjerouciteljId = vjeroucitelj.Id;
            var users          = (from u in _context.VjerouciteljUcenik
                                  where u.VjerouciteljId == vjerouciteljId
                                  select u.UcenikId).ToList();
            var ucenici = new AplicationUser();

            foreach (var id in users)
            {
                var user = await userManager.FindByIdAsync(id);

                ucenici.Ucenici.Add(user);
            }
            ViewData["AktivnostId"]      = new SelectList(_context.Aktivnosti, "AktivnostId", "Naziv", prisutnosti.TempPrisutnost.AktivnostId);
            ViewData["AplicationUserId"] = new SelectList(ucenici.Ucenici, "AplicationUserId", "ImeIPrezime", prisutnosti.UceniciIsSelected);
            var enumPrisutnost = Enum.GetValues(typeof(IsPrisutan)).Cast <IsPrisutan>().Select(v => v.ToString()).ToList();

            ViewData["Prisutnost"] = new SelectList(enumPrisutnost);
            return(View(prisutnosti));
        }
        private async Task LoadAsync(AplicationUser user)
        {
            var email = await _userManager.GetEmailAsync(user);

            Email = email;

            Input = new InputModel
            {
                NewEmail = email,
            };

            IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);
        }
        public void Post([FromBody] UserSignUp value)
        {
            var userManager = serviceProvider.GetRequiredService <UserManager <AplicationUser> >();

            AplicationUser user = new AplicationUser()
            {
                Email         = value.email,
                SecurityStamp = Guid.NewGuid().ToString(),
                UserName      = value.username
            };

            userManager.CreateAsync(user, value.password);
        }
        private async Task LoadAsync(AplicationUser user)
        {
            var userName = await _userManager.GetUserNameAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            Username = userName;

            Input = new InputModel
            {
                PhoneNumber = phoneNumber
            };
        }
        public void Cadastrar(AplicationUser usuario, string senha)
        {
            var result = _userManager.CreateAsync(usuario, senha).Result;

            if (!result.Succeeded)
            {
                StringBuilder sb = new StringBuilder();
                foreach (var error in result.Errors)
                {
                    sb.Append(error.Description);
                }

                throw new Exception($"Usuário não localizado! {sb.ToString()}");
            }
        }
Exemple #22
0
        public async Task <ActionResult <UserToken> > CreateUser([FromBody] UserInfo model)
        {
            var user = new AplicationUser {
                UserName = model.Email, Email = model.Email
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                return(BuildToken(model, new List <string>()));
            }
            else
            {
                return(BadRequest("Username or password invalid"));
            }
        }
        private ActionResult GerarToken(AplicationUser usuario)
        {
            var token = BuildToken(usuario);

            var tokenModel = new Token()
            {
                RefreshToken = token.RefreshToken,
                ExpirationToken = token.Expiration,
                ExpirationRefreshToken = token.ExpirationRefreshToken,
                Usuario = usuario,
                Criado = DateTime.Now,
                Utilizado = false,
            };
            _tokenRepository.Cadastrar(tokenModel);
            return Ok(token);
        }
        // GET: Prisutnost/Create
        public async Task <IActionResult> Create()
        {
            var username     = HttpContext.User.Identity.Name;
            var vjeroucitelj = await userManager.FindByNameAsync(username);

            var vjerouciteljId = vjeroucitelj.Id;
            var users          = (from u in _context.VjerouciteljUcenik
                                  where u.VjerouciteljId == vjerouciteljId
                                  select u.UcenikId).ToList();
            var ucenici = new AplicationUser();
            var temp    = new List <PrisutnostVjeroucitelj>();

            foreach (var id in users)
            {
                var user = await userManager.FindByIdAsync(id);

                ucenici.Ucenici.Add(user);
                var prisutnostVjeroucitelja = new PrisutnostVjeroucitelj
                {
                    Ucenik     = user.Email,
                    IsSelected = false,
                };
                temp.Add(prisutnostVjeroucitelja);
            }


            var prisutnost = new Prisutnost();
            var vjerouciteljListaPrisutnosti = new VjerouciteljListaPrisutnosti();

            vjerouciteljListaPrisutnosti.UceniciIsSelected = temp;
            vjerouciteljListaPrisutnosti.OdaberiSve        = false;
            vjerouciteljListaPrisutnosti.TempPrisutnost    = prisutnost;



            var vjerouciteljaktivnosti = _context.Predaje.Where(p => p.VjerouciteljId == vjerouciteljId).ToList();

            ViewData["AktivnostId"]      = new SelectList(vjerouciteljaktivnosti, "AktivnostId", "NazivPredmeta");
            ViewData["AplicationUserId"] = new SelectList(ucenici.Ucenici, "AplicationUserId", "Email");
            var enumPrisutnost = Enum.GetValues(typeof(IsPrisutan)).Cast <IsPrisutan>().Select(v => v.ToString()).ToList();

            ViewData["Prisutnost"] = new SelectList(enumPrisutnost);

            return(View(vjerouciteljListaPrisutnosti));
        }
        private async Task LoadSharedKeyAndQrCodeUriAsync(AplicationUser user)
        {
            // Load the authenticator key & QR code URI to display on the form
            var unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user);

            if (string.IsNullOrEmpty(unformattedKey))
            {
                await _userManager.ResetAuthenticatorKeyAsync(user);

                unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user);
            }

            SharedKey = FormatKey(unformattedKey);

            var email = await _userManager.GetEmailAsync(user);

            AuthenticatorUri = GenerateQrCodeUri(email, unformattedKey);
        }
Exemple #26
0
        private void SetUserRoles(AplicationUser user, BlogDbContext db, EditUserViewModel model)
        {
            var userManager = Request
                              .GetOwinContext()
                              .GetUserManager <ApplicationUserManager>();

            foreach (var role in model.Roles)
            {
                if (role.IsSelected)
                {
                    userManager.AddToRole(user.Id, role.Name);
                }
                else if (!role.IsSelected)
                {
                    userManager.RemoveFromRole(user.Id, role.Name);
                }
            }
        }
        public async Task <IActionResult> Register(RegisterViewModel register)
        {
            if (!ModelState.IsValid)
            {
                return(View("Comprobacion", register));
            }
            if (ModelState.IsValid)
            {
                var user = new AplicationUser
                {
                    NombreUsuario = register.NombreUsuario,
                    UserName      = register.NombreUsuario,
                    Email         = register.NombreUsuario,
                    Contraseña    = register.Contraseña
                };

                var result = await _userManager.CreateAsync(user);



                if (result.Succeeded)
                {
                    await _signInManager.SignInAsync(user, false);

                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    //foreach (var error in result.Errors)
                    //{
                    //    ModelState.AddModelError("", error.Description);

                    //}

                    return(View("Comprobacion", register));
                }
            }
            return(View(register));
        }
Exemple #28
0
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new AplicationUser
                {
                    UserName = model.Email,
                    FullName = model.FullName,
                    Email    = model.Email
                };

                var result = await UserManager.CreateAsync(user, model.Password);

                using (var db = new BlogDbContext())
                {
                    var userId = db.Users.FirstOrDefault((u => u.Email.Equals(user.Email))).Id;
                    this.UserManager.AddToRole(userId, "User");
                }

                var addRoleResult = UserManager.AddToRole(user.Id, "User");

                if (result.Succeeded)
                {
                    await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return(RedirectToAction("Index", "Home"));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public async Task <IActionResult> ListUsers()
        {
            var username     = HttpContext.User.Identity.Name;
            var vjeroucitelj = await userManager.FindByNameAsync(username);

            var vjerouciteljId = vjeroucitelj.Id;
            var users          = (from u in _context.VjerouciteljUcenik
                                  where u.VjerouciteljId == vjerouciteljId
                                  select u.UcenikId).ToList();
            var ucenici = new AplicationUser();

            foreach (var id in users)
            {
                var user = await userManager.FindByIdAsync(id);

                ucenici.Ucenici.Add(user);
            }



            return(View(ucenici.Ucenici));
        }
Exemple #30
0
        public async Task <IActionResult> Login(LoginViewModel login)
        {
            var valores = ModelState.Values;

            var noseque = ModelState.ValidationState;

            if (!ModelState.IsValid)
            {
                return(View("../Account/Comprobacion", login));
            }

            ViewBag.Title = "Login page";

            if (ModelState.IsValid)
            {
                var user = new AplicationUser
                {
                    NombreUsuario = login.NombreUsuario,
                    UserName      = login.NombreUsuario,
                    Email         = login.NombreUsuario,
                    Contraseña    = login.Contraseña
                };

                var result = await _signInManager.PasswordSignInAsync(user, login.Contraseña, login.RememberMe, false);


                if (result.Succeeded)
                {
                    Identidad = user.Id;
                    return(RedirectToAction("Index", "Home", Identidad));
                }
                else
                {
                    ModelState.AddModelError("", "Error en Login");
                }
            }
            return(View(login));
        }