public async Task <Result> UpdateUserAsync(int id, PanelUserDTO user) { EFRepository <PanelUser> repo = _unitOfWork.EntityRepository <PanelUser>(); PanelUser item = await repo.GetFirstAsync((PanelUser w) => w.IsDeleted == false && w.Id == id, null); if (item == null) { return(Result.Fail("Kullanıcı bulunamadı!")); } item.Name = user.Name; item.PlaceId = user.PlaceId; item.Role = user.Role; item.ModifiedDate = DateTime.UtcNow; if (item.Email != user.Email) { if (await repo.GetExistsAsync((PanelUser w) => w.IsDeleted == false && w.Email == user.Email)) { return(Result.Fail("Bu mail (" + user.Email + ") ile kullanıcı tanımlanmış!")); } item.Email = user.Email; string text = PasswordHelper.GeneratePassword(6); item.Password = PasswordHelper.MD5Hash(text); await _emailSender.Send(new string[1] { user.Email }, "Üyeliğiniz oluşturuldu!", "Yetkilim panele giriş şifreniz: " + text); } await _unitOfWork.SaveChangesAsync(); return(Result.Success()); }
public async Task <Result <PanelUserDTO> > AddUserAsync(PanelUserDTO model) { try { Result <PanelUserDTO> res = new Result <PanelUserDTO>(); EFRepository <PanelUser> repo = _unitOfWork.EntityRepository <PanelUser>(); if (await repo.GetExistsAsync((PanelUser w) => w.IsDeleted == false && w.Email == model.Email)) { return(res.Fail("Bu mail (" + model.Email + ") ile kullanıcı tanımlanmış!")); } PanelUser panelUser = Mapper.Map <PanelUserDTO, PanelUser>(model); string pass = PasswordHelper.GeneratePassword(6); panelUser.Password = PasswordHelper.MD5Hash(pass); panelUser.CreatedDate = DateTime.UtcNow; panelUser.Place = null; panelUser.Company = null; PanelUser created = await repo.CreateAsync(panelUser); await _unitOfWork.SaveChangesAsync(); if (model.SendMail) { await _emailSender.Send(new string[1] { model.Email }, "Üyeliğiniz oluşturuldu!", "Yetkilim panele giriş şifreniz: " + pass); } return(Result.Data(Mapper.Map <PanelUser, PanelUserDTO>(created))); } catch (Exception ex) { throw; } }
public IActionResult PanelRequest(string email, string returnUrl) { if (string.IsNullOrEmpty(email)) { TempData["Error"] = "Emailen kan ikke være tom"; return(RedirectToAction(returnUrl)); } if (_context.PanelRequests.Any(x => x.Email == email)) { TempData["Success"] = "Det ser ud til, at du allerede er skrevet op!"; return(RedirectToAction(returnUrl)); } var user = new PanelUser() { Email = email, Created = DateTime.Now }; try { _context.PanelRequests.Add(user); _context.SaveChanges(); TempData["Success"] = "Tak! Vi kontakter dig hurtigst muligt"; } catch (Exception e) { TempData["Error"] = "Hov noget gik galt - Kontakt os gerne"; } return(RedirectToAction(returnUrl)); }
public void ResetPassword(PanelUser user, string oldPassword, string newPassword) { var identityResult = _userManager.ChangePassword(user.Id, oldPassword, newPassword); if (!identityResult.Succeeded) { throw new CustomException(identityResult.Errors.Aggregate("", (current, error) => current + error + "\n")); } }
public static void Seed(this ModelBuilder modelBuilder) { CompanyType[] companyTypeArray1 = new CompanyType[2]; CompanyType companyType1 = new CompanyType(); companyType1.Id = 1; companyType1.Code = "CAFE"; companyType1.Name = "Cafe"; companyTypeArray1[0] = companyType1; CompanyType companyType2 = new CompanyType(); companyType2.Id = 2; companyType2.Code = "RESTAURANT"; companyType2.Name = "Restoran"; companyTypeArray1[1] = companyType2; CompanyType[] companyTypeArray2 = companyTypeArray1; modelBuilder.Entity <CompanyType>().HasData(companyTypeArray2); Company company1 = new Company(); company1.Id = 1; company1.Name = "Yetkilim A.Ş"; company1.CompanyTypeId = 1; company1.CreatedDate = DateTime.Now; company1.CreatedBy = nameof(Seed); Company company2 = company1; modelBuilder.Entity <Company>().HasData(new Company[1] { company2 }); PanelUser[] panelUserArray1 = new PanelUser[1]; PanelUser panelUser = new PanelUser(); panelUser.Id = 1; panelUser.Name = "Super Admin"; panelUser.CompanyId = 1; panelUser.Email = "*****@*****.**"; panelUser.Password = "******"; panelUser.Role = UserRole.SuperAdmin; panelUser.CreatedDate = DateTime.Now; panelUserArray1[0] = panelUser; PanelUser[] panelUserArray2 = panelUserArray1; modelBuilder.Entity <PanelUser>().HasData(panelUserArray2); FeedbackForm feedbackForm1 = new FeedbackForm(); feedbackForm1.Id = 1; feedbackForm1.CompanyId = 1; feedbackForm1.CreatedDate = DateTime.Now; FeedbackForm feedbackForm2 = feedbackForm1; modelBuilder.Entity <FeedbackForm>().HasData(new FeedbackForm[1] { feedbackForm2 }); }
public async Task <IdentityResult> DeleteUser(PanelUser user) { var refreshTokens = _context.RefreshTokens.Where(item => item.Subject == user.UserName); foreach (var refreshToken in refreshTokens) { _context.RefreshTokens.Remove(refreshToken); } _context.SaveChanges(); return(await _userManager.DeleteAsync(user)); }
public async Task <Result> DeleteUserAsync(int id) { PanelUser panelUser = await _unitOfWork.EntityRepository <PanelUser>().GetFirstAsync((PanelUser w) => w.Id == id, null); if (panelUser == null) { return(Result.Fail("Kullanıcı bulunamadı!")); } panelUser.IsDeleted = true; await _unitOfWork.SaveChangesAsync(); return(Result.Success()); }
public async Task <Result <PanelUserDTO> > GetUserAsync(string email, string password) { Result <PanelUserDTO> res = new Result <PanelUserDTO>(); string hashedPassword = PasswordHelper.MD5Hash(password); PanelUser panelUser = await EntityFrameworkQueryableExtensions.FirstOrDefaultAsync <PanelUser>((IQueryable <PanelUser>) EntityFrameworkQueryableExtensions.Include <PanelUser, Company>(_unitOfWork.EntityRepository <PanelUser>().GetQueryable((PanelUser w) => w.IsDeleted == false && w.Email == email && w.Password == hashedPassword && !w.IsDeleted, null), (Expression <Func <PanelUser, Company> >)((PanelUser w) => w.Company)), default(CancellationToken)); if (panelUser == null) { return(res.Fail("User yok!")); } PanelUserDTO dataVal = Mapper.Map <PanelUser, PanelUserDTO>(panelUser); return(res.Success(dataVal)); }
public async Task <Result> ResetPasswordAsync(string code, string email, string password) { PanelUser panelUser = await _unitOfWork.EntityRepository <PanelUser>().GetFirstAsync((PanelUser w) => w.IsDeleted == false && w.Email == email && w.ResetCode == code, null); if (panelUser == null) { return(Result.Fail("Talep geçersiz!")); } panelUser.ResetCode = null; panelUser.Password = PasswordHelper.MD5Hash(password); await _unitOfWork.SaveChangesAsync(); return(Result.Success()); }
public async Task <IdentityResult> RegisterUserWithRole(PanelUser user, IdentityRole role, string password) { var identityResult = await _userManager.CreateAsync(user, password); if (identityResult.Succeeded) { if (_roleManager.FindByName(role.Name) == null) { await _roleManager.CreateAsync(role); } _userManager.AddToRole(user.Id, role.Name); } return(identityResult); }
protected override void Seed(AuthContext context) { if (!context.Roles.Any(r => r.Name == "Admin")) { var store = new RoleStore <IdentityRole>(context); var manager = new RoleManager <IdentityRole>(store); var role = new IdentityRole { Name = "Admin" }; manager.Create(role); } if (!context.Users.Any(u => u.UserName == "admin")) { var store = new UserStore <PanelUser>(context); var manager = new UserManager <PanelUser>(store); var user = new PanelUser("admin", "سینا", "علیزاده", "4000218190", "09195291442", "*****@*****.**"); manager.Create(user, "123456!"); manager.AddToRole(user.Id, "Admin"); } context.Clients.AddOrUpdate(new Client { ApplicationType = ApplicationType.ShopUserApp, Active = true, AllowedOrigin = "*", Id = "ShopUserApp", Name = "app user & web user", RefreshTokenLifeTime = 5000000, Secret = "ICXDroz4HhR1Elx8qaz3C13z/quTXBkQ3Q5hj7Qx3aA=" }); context.Clients.AddOrUpdate(new Client { ApplicationType = ApplicationType.CustomerUserApp, Active = true, AllowedOrigin = "*", Id = "CustomerUserApp", Name = "app user & web user", RefreshTokenLifeTime = 5000000, Secret = "ICXDroz4HhR1Elx8qaz4C13z/quTXBkQ3Q5hj7Qx3aA=" }); context.Clients.AddOrUpdate(new Client { ApplicationType = ApplicationType.JavaScript, Active = true, AllowedOrigin = "*", Id = "ngAuthApp", Name = "app user & web user", RefreshTokenLifeTime = 7200, Secret = "ICXDroz4HhR1Elx8qaz3C13z/quTXBkQ3Q5hj7Qx3aA=" }); }
public async Task <IdentityResult> RemoveUserRole(PanelUser user, IdentityRole role) { if (_userManager.IsInRole(user.Id, role.Name)) { var refreshTokens = _context.RefreshTokens.Where(item => item.Subject == user.UserName); foreach (var refreshToken in refreshTokens) { _context.RefreshTokens.Remove(refreshToken); } _context.SaveChanges(); return(await _userManager.RemoveFromRoleAsync(user.Id, role.Name)); } return(null); }
public void CreateUserWithRole(CreateUserPanelWithRoleCommand command) { var user = new PanelUser(command.UserName, command.FirstName, command.LastName, command.NationalCode, command.MobileNumber, command.Email); var identityResult = _panelRepository .RegisterUserWithRole(user, new IdentityRole(command.RoleName), command.Password).Result; if (identityResult == null) { throw new CustomException(" Internal Server Error"); } if (!identityResult.Succeeded) { throw new CustomException(identityResult.Errors.Aggregate("", (current, error) => current + error + "\n")); } }
public async Task <Result> ForgotPasswordAsync(string email) { PanelUser panelUser = await _unitOfWork.EntityRepository <PanelUser>().GetFirstAsync((PanelUser w) => w.IsDeleted == false && w.Email == email, null); if (panelUser == null) { return(Result.Success("Talebiniz alındı!")); } Guid code = Guid.NewGuid(); panelUser.ResetCode = code.ToString(); await _unitOfWork.SaveChangesAsync(); await _emailSender.Send(new string[1] { email }, "Şifre sıfırlama!", $"Yetkilim panel şifre sıfırlama talebiniz alındı. <br/> Sıfırlamak için : https://yetkilim.com/Admin/Manage/ResetPassword?code={code}"); return(Result.Success()); }
public async Task <IdentityResult> SetUserRole(PanelUser user, IdentityRole role) { if (_roleManager.FindByName(role.Name) == null) { var roleResult = await _roleManager.CreateAsync(role); if (!roleResult.Succeeded) { return(roleResult); } } if (!_userManager.IsInRole(user.Id, role.Name)) { var refreshTokens = _context.RefreshTokens.Where(item => item.Subject == user.UserName); foreach (var refreshToken in refreshTokens) { _context.RefreshTokens.Remove(refreshToken); } _context.SaveChanges(); return(_userManager.AddToRole(user.Id, role.Name)); } return(null); }
public bool IsCorrectPassword(PanelUser user, string password) { return(_userManager.CheckPasswordAsync(user, password).Result); }
public static void Log(PanelUser u, string message) { Console.WriteLine("[ [Managing] IP {0} ] {1}", u.ipi.ToString(), message); }
public async Task <IList <string> > GetUserRoles(PanelUser user) { return(await _userManager.GetRolesAsync(user.Id)); }
public async Task <IdentityResult> RegisterUserAsync(PanelUser user, string password) { var identityResult = await _userManager.CreateAsync(user, password); return(identityResult); }
public async Task <IdentityRole> GetUserRole(PanelUser user) { return(await _roleManager.FindByIdAsync(user.Roles.FirstOrDefault()?.RoleId)); }