示例#1
0
        public IList <string> GetHoldActList(int userId)
        {
            UserActDomain act  = _userDao.GetSelfAct(userId);
            var           list = act.RoleActList.Concat(act.AllowActList).Except(act.DenyActList);

            return(list.ToList());
        }
示例#2
0
        /// <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);
        }
示例#3
0
        public ActionResult ActEdit(int userId)
        {
            UserActDomain domain = Svc.User.GetSelfAct(userId);

            var vm = domain.MappingModel <UserActDomain, UserActViewModel>();

            return(View(vm));
        }
示例#4
0
        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();
        }
示例#5
0
        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));
            }
        }
示例#6
0
 public void SetSelfAct(UserActDomain domain)
 {
     _userDao.SetSelfAct(domain);
 }