Пример #1
0
        public void CreateRole(CreateRoleViewModel viewModel)
        {
            int RoleNum;

            using (IntelligenceCloudEntities ctx = new IntelligenceCloudEntities())
            {
                RoleNum = ctx.GetRoleNum();
            }

            //int? RoleNum = roleService.GetAll().Max(r => r.RoleNum) + 1;
            Role role = new Role()
            {
                MemberId    = viewModel.RoleAndFeatureViewModel.FirstOrDefault().MemberId,
                RoleLock    = false,
                Description = viewModel.RoleAndFeatureViewModel.FirstOrDefault().Description,
                RoleNum     = RoleNum,
                isDeleted   = false,
            };

            roleService.Create(role);

            foreach (var roleAndFeature in viewModel.RoleAndFeatureViewModel)
            {
                RoleFeature feature = new RoleFeature()
                {
                    isDeleted      = false,
                    RoleNum        = RoleNum,
                    ActionName     = roleAndFeature.ActionName,
                    ControllerName = roleAndFeature.ControllerName
                };
                Create(feature);
            }
        }
Пример #2
0
        public IQueryable <Feature> GetRestFeat(int id)
        {
            List <int> restFeat;

            using (IntelligenceCloudEntities ctx = new IntelligenceCloudEntities())
            {
                restFeat = ctx.RoleFeature.Where(rf => rf.RoleId == id).Select(rf => rf.FeatureId).ToList();
            }
            return(GetAll().Where(f => !restFeat.Contains(f.FeatureId)));
        }
Пример #3
0
        public IQueryable <Role> GetRestRole(int id)
        {
            List <int> restRole;

            using (IntelligenceCloudEntities ctx = new IntelligenceCloudEntities())
            {
                restRole = ctx.RoleMember.Where(rm => rm.MemberId == id).Select(rm => rm.RoleId).ToList();
            }
            return(GetAll().Where(r => !restRole.Contains(r.RoleId)));
        }
        //判斷會員有無此功能權限
        public bool Accessible(int memberId, string ctrlName, string actName)
        {
            bool result;

            using (IntelligenceCloudEntities ctx = new IntelligenceCloudEntities())
            {
                var roles    = ctx.RoleMember.Where(rm => rm.MemberId == memberId).Select(rm => rm.RoleId);
                var features = ctx.RoleFeature.Where(rf => roles.Contains(rf.RoleId)).Select(rf => rf.FeatureId);
                result = ctx.Feature.Where(f => features.Contains(f.FeatureId)).Any(f => f.ControllerName == ctrlName && f.ActionName == actName);
            }
            return(result);
        }
Пример #5
0
        public IQueryable <FeatureViewModel> GetRoleFeat(int id)
        {
            List <RoleFeature> roleFeat;

            using (IntelligenceCloudEntities ctx = new IntelligenceCloudEntities())
            {
                roleFeat = ctx.RoleFeature.Where(rf => rf.RoleId == id).ToList();
            }
            var result = roleFeat.Select(rf =>
                                         new FeatureViewModel()
            {
                RoleFeat = rf,
                FeatName = Get(f => f.FeatureId == rf.FeatureId).FName
            });

            return(result.AsQueryable());
        }
        public List <Feature> GetFeats(int?memberId)
        {
            List <Feature> feats = new List <Feature>();

            if (memberId != null)
            {
                using (IntelligenceCloudEntities ctx = new IntelligenceCloudEntities())
                {
                    var roles    = ctx.RoleMember.Where(rm => rm.MemberId == memberId).Select(rm => rm.RoleId);
                    var roleFeat = ctx.RoleFeature.Where(rf => roles.Contains(rf.RoleId)).Select(rf => rf.FeatureId);
                    feats = ctx.Feature.Where(f => roleFeat.Contains(f.FeatureId)).ToList();
                }
                return(feats);
            }

            return(feats);
        }
Пример #7
0
        public IQueryable <RoleViewModel> GetRoleMember(int id)
        {
            //id = memberId

            List <RoleMember> roleMem;

            using (IntelligenceCloudEntities ctx = new IntelligenceCloudEntities())
            {
                roleMem = ctx.RoleMember.Where(rm => rm.MemberId == id).ToList();
            }
            var result = roleMem.Select(rm => new RoleViewModel()
            {
                RoleMem  = rm,
                RoleName = Get(r => r.RoleId == rm.RoleId).RName
            });

            return(result.AsQueryable());
        }
Пример #8
0
        public IQueryable <RoleAndFeatureViewModel> GetFeature(int?memberId)
        {
            List <GetRoleAndFeature_Result> rolesFromSp;

            using (IntelligenceCloudEntities ctx = new IntelligenceCloudEntities())
            {
                rolesFromSp = ctx.GetRoleAndFeature(memberId).ToList();
            }

            var role = rolesFromSp.Select(r => new RoleAndFeatureViewModel()
            {
                ActionName     = r.ActionName,
                ControllerName = r.ControllerName,
                FeatureId      = (int)r.FeatureId,
                RoleLock       = r.RoleLock,
                Description    = r.Description,
                MemberId       = (int)r.MemberId,
                RoleNum        = r.RoleNum
            }).Where(r => r.RoleLock == false).AsQueryable();

            return(role);
        }