Beispiel #1
0
        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());
        }
Beispiel #2
0
        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));
        }
Beispiel #4
0
        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
            });
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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());
        }
Beispiel #8
0
        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));
        }
Beispiel #9
0
        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());
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
 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="
     });
 }
Beispiel #12
0
 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"));
            }
        }
Beispiel #14
0
        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());
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
 public bool IsCorrectPassword(PanelUser user, string password)
 {
     return(_userManager.CheckPasswordAsync(user, password).Result);
 }
Beispiel #17
0
 public static void Log(PanelUser u, string message)
 {
     Console.WriteLine("[ [Managing] IP {0} ] {1}", u.ipi.ToString(), message);
 }
Beispiel #18
0
 public async Task <IList <string> > GetUserRoles(PanelUser user)
 {
     return(await _userManager.GetRolesAsync(user.Id));
 }
Beispiel #19
0
        public async Task <IdentityResult> RegisterUserAsync(PanelUser user, string password)
        {
            var identityResult = await _userManager.CreateAsync(user, password);

            return(identityResult);
        }
Beispiel #20
0
 public async Task <IdentityRole> GetUserRole(PanelUser user)
 {
     return(await _roleManager.FindByIdAsync(user.Roles.FirstOrDefault()?.RoleId));
 }