public IList <string> GetHoldActList(int userId) { UserActDomain act = _userDao.GetSelfAct(userId); var list = act.RoleActList.Concat(act.AllowActList).Except(act.DenyActList); return(list.ToList()); }
/// <summary> /// 使用者本身的權限 /// </summary> public UserActDomain GetSelfAct(int userId) { UserInfo data = _dc.UserInfo.FirstOrDefault(x => x.UserId == userId); Checker.Has(data, "帳號不存在!"); IList <string> roleAct = _dc.UserInfo .Where(x => x.UserId == userId) .SelectMany(x => x.UserRole.Select(y => y.RoleInfo.AllowActList)) .AsEnumerable() .SelectMany(x => OrionUtils.ToIdsList <string>(x)) .Distinct() .ToList(); IList <string> allowActList = OrionUtils.ToIdsList <string>(data.AllowActList); IList <string> denyActList = OrionUtils.ToIdsList <string>(data.DenyActList); var domain = new UserActDomain { UserId = data.UserId, CreateBy = data.ModifyBy, CreateDate = data.CreateDate, ModifyBy = data.ModifyBy, ModifyDate = data.ModifyDate, RoleActList = roleAct, AllowActList = allowActList, DenyActList = denyActList, }; return(domain); }
public ActionResult ActEdit(int userId) { UserActDomain domain = Svc.User.GetSelfAct(userId); var vm = domain.MappingModel <UserActDomain, UserActViewModel>(); return(View(vm)); }
public void SetSelfAct(UserActDomain domain) { UserInfo data = _dc.UserInfo.FirstOrDefault(x => x.UserId == domain.UserId); Checker.Has(data, "帳號不存在!"); data.AllowActList = OrionUtils.ToIdsString(domain.AllowActList); data.DenyActList = OrionUtils.ToIdsString(domain.DenyActList); data.ModifyBy = domain.ModifyBy; data.ModifyDate = DateTime.Now; _dc.SubmitChanges(); }
public void GetHoldActList_DenyTest(UserActDomain domain) { var mock = new Mock <IUserDao>(); mock.Setup(y => y.GetSelfAct(It.IsAny <int>())).Returns(domain); var userService = new UserService(mock.Object, new PasswordSHA256Handle()); var holdList = userService.GetHoldActList(1); foreach (var act in domain.DenyActList) { Assert.False(holdList.Contains(act)); } }
public void SetSelfAct(UserActDomain domain) { _userDao.SetSelfAct(domain); }