public void ChangePass(UserModel model) { db = new TimeAttendanceEntities(); var modelChange = db.User.Where(r => r.UserId.Equals(model.UserId)).FirstOrDefault(); //Kiểm tra tồn tại if (modelChange == null) { throw new BusinessException(ErrorMessage.ERR003); } //Check mật khẩu cũ nhập var securityStamp = PasswordUtil.ComputeHash(model.OldPassword + modelChange.Password); if (!modelChange.PasswordHash.Equals(securityStamp)) { throw new BusinessException(ErrorMessage.ERR007); } using (var trans = db.Database.BeginTransaction()) { try { modelChange.PasswordHash = PasswordUtil.ComputeHash(model.NewPassword + modelChange.Password); //luu Log lich su string decription = "Thay đổi mật khẩu cá nhân"; LogBusiness.SaveLogEvent(db, model.UserId, decription, null); db.SaveChanges(); trans.Commit(); //xóa cache var redis = RedisService <LoginCacheModel> .GetInstance(RedisConnection); LoginCacheModel RefreshToken; RefreshToken = redis.Get <LoginCacheModel>(Constants.ATLogin + modelChange.Name); if (RefreshToken != null) { redis.Remove(Constants.ATLogin + modelChange.Name); } } catch (Exception ex) { trans.Rollback(); throw new ErrorException(ErrorMessage.ERR001, ex.InnerException); } } }
public void ResetPass(string userId) { db = new TimeAttendanceEntities(); using (var trans = db.Database.BeginTransaction()) { try { var modelReset = db.User.Where(r => r.UserId.Equals(userId)).FirstOrDefault(); var name = string.Empty; if (modelReset != null) { modelReset.Password = PasswordUtil.CreatePasswordHash(); modelReset.PasswordHash = PasswordUtil.ComputeHash(Constants.PasswordDefault + modelReset.Password); name = modelReset.Name; } db.SaveChanges(); trans.Commit(); //luu Log lich su string decription = "Lấy lại mật khẩu của user tên là: " + name; LogBusiness.SaveLogEvent(db, userId, decription, null); //xóa cache // var RedisConnection = System.Configuration.ConfigurationManager.AppSettings["RedisConnection"]; var redis = RedisService <LoginCacheModel> .GetInstance(RedisConnection); LoginCacheModel RefreshToken; RefreshToken = redis.Get <LoginCacheModel>(Constants.ATLogin + modelReset.Name); if (RefreshToken != null) { redis.Remove(Constants.ATLogin + modelReset.Name); } } catch (Exception ex) { trans.Rollback(); throw new ErrorException(ErrorMessage.ERR001, ex.InnerException); } } }
public void CreateUser(UserModel model) { db = new TimeAttendanceEntities(); if (this.IsExistedUser(model.Name)) { throw new BusinessException(ErrorMessage.ERR002); } using (var trans = db.Database.BeginTransaction()) { try { User modelCreate = new User() { UserId = Guid.NewGuid().ToString(), Name = model.Name, FullName = model.FullName, BirthDay = model.BirthDay, Agency = model.Agency, Email = model.Email, UnitId = model.UnitId, Role = model.Role, Type = model.Type, PhoneNumber = model.PhoneNumber, Address = model.Address, Status = Constants.UnLock, Description = model.Description, ImageLink = model.ImageLink, CreateBy = model.CreateBy, CreateDate = DateTime.Now, }; modelCreate.Password = PasswordUtil.CreatePasswordHash(); modelCreate.PasswordHash = PasswordUtil.ComputeHash(Constants.PasswordDefault + modelCreate.Password); db.User.Add(modelCreate); if (!string.IsNullOrEmpty(model.GroupId)) { UserGroup userGroup = new UserGroup() { UserGroupId = Guid.NewGuid().ToString(), GroupId = model.GroupId, UserId = modelCreate.UserId, }; db.UserGroup.Add(userGroup); } //Thêm dánh sách quyền cho tài khoản List <UserPermission> listPermission = new List <UserPermission>(); UserPermission modelPermission; if (model.ListPermission != null && model.ListPermission.Count() > 0) { foreach (var item in model.ListPermission) { modelPermission = new UserPermission() { UserPermissionId = Guid.NewGuid().ToString(), UserId = modelCreate.UserId, FunctionId = item.FunctionId, }; listPermission.Add(modelPermission); } db.UserPermission.AddRange(listPermission); } //luu Log lich su string decription = "Thêm mới có tên là: " + model.Name; LogBusiness.SaveLogEvent(db, model.LogUserId, decription, model.ViolationEventId); db.SaveChanges(); trans.Commit(); } catch (Exception ex) { trans.Rollback(); throw new ErrorException(ErrorMessage.ERR001, ex.InnerException); } } }
public LoginEntity Login(string userName, string password) { db = new TimeAttendanceEntities(); LoginEntity loginEntity = new LoginEntity(); try { var userLogin = (from a in db.User.AsNoTracking() where a.Name.Equals(userName) && a.DeleteFlg == 0 //join b in db.UserGroups.AsNoTracking() on a.UserId equals b.UserId into ab //from abv in ab.DefaultIfEmpty() select new { a.UserId, // a.UnitId, a.Name, a.FullName, a.BirthDay, // a.Agency, a.Email, a.Role, a.PhoneNumber, a.Password, a.PasswordHash, a.Status, a.Type, a.Description, a.ImageLink, a.CreateBy, a.CreateDate, a.UpdateBy, a.UpdateDate, a.IsAdmin, //abv.GroupId, }).FirstOrDefault(); if (userLogin != null) { if (userLogin.Status == Constants.Lock) { //Tài khoản bị khóa. Lên hệ quản trị để kích hoạt lại loginEntity.ResponseCode = -6; } else { var securityStamp = PasswordUtil.ComputeHash(password + userLogin.Password); if (userLogin.PasswordHash.Equals(securityStamp)) { UserEntity userEntity = new UserEntity() { UserName = userLogin.Name, UserId = userLogin.UserId, FullName = userLogin.FullName, Role = "1", //UnitId = userLogin.UnitId, //GroupId = userLogin.GroupId, ImageLink = userLogin.ImageLink, //Agency = userLogin.Agency, Type = userLogin.Type, IsAdmin = userLogin.IsAdmin.ToString(), securityKey = PasswordUtil.CreatePasswordHash(), }; userEntity.ListPermission = new List <string>(); userEntity.ListPermission = (from c in db.UserPermission.AsNoTracking() where c.UserId.Equals(userLogin.UserId) join d in db.Function.AsNoTracking() on c.FunctionId equals d.FunctionId select d.Code).ToList <string>(); userEntity.HomePage = (from r in db.Group.AsNoTracking() join a in db.UserGroup on r.GroupId equals a.GroupId where a.UserId.Equals(userEntity.UserId) select r.HomePage).FirstOrDefault(); loginEntity.UserInfor = userEntity; LogBusiness.SaveLogLogin(db, userEntity.UserId); } else { // Mật khẩu không đúng loginEntity.ResponseCode = -5; } } } else { // tài khoản không có trong hệ thống loginEntity.ResponseCode = -4; } } catch (Exception e) { Console.Write(e.ToString()); } return(loginEntity); }