public async Task <IActionResult> RoleFieldPermissions(int id = -1, string roleName = "")
        {
            var permissionsViewModels = new List <RoleFieldPermissionsViewModels>();

            if (id <= -1)
            {
                Utility.WriteMessage("权限配置必须指定角色", "mClose");
                return(View(permissionsViewModels));
            }
            if (id == 0)
            {
                Utility.WriteMessage("超级管理员不用设置权限", "mClose");
                return(View(permissionsViewModels));
            }
            ViewBag.RoleID   = id;
            ViewBag.RoleName = roleName;

            var modelsEntityList = await _ModelsService.LoadListAllAsync(p => p.IsDisabled == false);

            foreach (ModelsEntity modelsEntity in modelsEntityList)
            {
                List <FieldInfo> fieldInfoList = modelsEntity.Field.ToXmlObject <List <FieldInfo> >();
                fieldInfoList.Sort(new FieldInfoComparer());
                var vm = new RoleFieldPermissionsViewModels();
                vm.ModelsEntity  = modelsEntity;
                vm.FieldInfoList = fieldInfoList;
                vm.RoleFieldPermissionsEntityList = await _RolesService.GetFieldPermissionsById(id, modelsEntity.ModelID);

                permissionsViewModels.Add(vm);
            }

            return(View(permissionsViewModels));
        }
Example #2
0
        public async Task <ActionResult> UserGroupPermissions(int id = 0, int IdType = 1)
        {
            UserGroupsEntity  userGroupsEntity  = null;
            UsersEntity       usersEntity       = null;
            UserPurviewEntity userPurviewEntity = null;
            UserGroupPermissionsViewModels permissionsViewModels = new UserGroupPermissionsViewModels();

            if (IdType == 1)
            {
                if (id <= 0 && id != -2)
                {
                    Utility.WriteMessage("权限配置必须指定会员组", "mClose");
                    return(View(permissionsViewModels));
                }
                userGroupsEntity = await _UserGroupsService.GetAsync(p => p.GroupID == id);

                if (userGroupsEntity == null)
                {
                    Utility.WriteMessage("指定的会员组不存在", "mClose");
                    return(View(permissionsViewModels));
                }
                ViewBag.Name      = userGroupsEntity.GroupName;
                userPurviewEntity = userGroupsEntity.UserGroupPurview;
            }
            else if (IdType == 0)
            {
                if (id <= 0)
                {
                    Utility.WriteMessage("权限配置必须指定会员", "mClose");
                    return(View(permissionsViewModels));
                }
                usersEntity = await _UsersService.GetAsync(p => p.UserID == id);

                if (usersEntity == null)
                {
                    Utility.WriteMessage("指定的会员不存在", "mClose");
                    return(View(permissionsViewModels));
                }
                ViewBag.Name      = usersEntity.UserName;
                userPurviewEntity = usersEntity.UserPurview;
            }
            else
            {
                Utility.WriteMessage("权限类型没有指定", "mClose");
                return(View(permissionsViewModels));
            }
            if (userPurviewEntity == null)
            {
                userPurviewEntity = new UserPurviewEntity();
            }
            ViewBag.ID = id;
            permissionsViewModels.IdType = IdType;
            permissionsViewModels.GroupPermissionsList = DataConverter.ToString(userPurviewEntity.AllCheckCode);
            permissionsViewModels.PurviewEntity        = userPurviewEntity;
            //菜单权限
            string      userMenuPath = Utility.GetUserMenuPath();
            XmlHelper   xmlHelper    = XmlHelper.Instance(FileHelper.MapPath(userMenuPath), XmlType.File);
            XmlDocument xmlDoc       = xmlHelper.XmlDoc;
            XmlNode     rootNode     = xmlDoc.SelectSingleNode("menu");

            if (rootNode == null)
            {
                Utility.WriteMessage("菜单配置文件不存在menu根元素", "mClose");
                return(View(permissionsViewModels));
            }
            if (rootNode.HasChildNodes)
            {
                IList <MenuEntity> menuEntityList = new List <MenuEntity>();
                foreach (XmlNode channelMenuNode in rootNode)
                {
                    string operateCode = XmlHelper.GetAttributesValue(channelMenuNode, "operateCode");
                    string NodeName    = channelMenuNode.Name;
                    string menuID      = XmlHelper.GetAttributesValue(channelMenuNode, "id");
                    string title       = XmlHelper.GetAttributesValue(channelMenuNode, "title");
                    string Description = XmlHelper.GetAttributesValue(channelMenuNode, "Description");
                    string rightUrl    = XmlHelper.GetAttributesValue(channelMenuNode, "rightUrl");
                    string MenuType    = XmlHelper.GetAttributesValue(channelMenuNode, "type");
                    string MenuIcon    = XmlHelper.GetAttributesValue(channelMenuNode, "icon");
                    bool   ShowOnForm  = DataConverter.CBoolean(XmlHelper.GetAttributesValue(channelMenuNode, "ShowOnForm"));
                    bool   ShowOnMenu  = DataConverter.CBoolean(XmlHelper.GetAttributesValue(channelMenuNode, "ShowOnMenu"));
                    if (!ShowOnForm)
                    {
                        continue;
                    }
                    MenuEntity menuEntity = new MenuEntity
                    {
                        NodeName    = NodeName,
                        ID          = menuID,
                        Title       = title,
                        OperateCode = operateCode,
                        Description = Description,
                        Url         = rightUrl,
                        MenuType    = MenuType,
                        MenuIcon    = MenuIcon,
                        ShowOnForm  = ShowOnForm,
                        ShowOnMenu  = ShowOnMenu
                    };
                    menuEntity.MenuItem = InitSubMenu(channelMenuNode);
                    menuEntityList.Add(menuEntity);
                }
                permissionsViewModels.MenuEntityList = menuEntityList;
            }
            //字段权限
            var groupFieldPermissionsViewModelsList = new List <GroupFieldPermissionsViewModels>();
            var modelsEntityList = await _ModelsService.LoadListAllAsync(p => p.IsDisabled == false);

            foreach (ModelsEntity modelsEntity in modelsEntityList)
            {
                var fieldInfoList = modelsEntity.Field.ToXmlObject <List <FieldInfo> >();
                fieldInfoList.Sort(new FieldInfoComparer());
                var vm = new GroupFieldPermissionsViewModels();
                vm.ModelsEntity  = modelsEntity;
                vm.FieldInfoList = fieldInfoList;
                vm.GroupFieldPermissionsEntityList = await _UserGroupsService.GetFieldPermissionsById(id, modelsEntity.ModelID, IdType);

                groupFieldPermissionsViewModelsList.Add(vm);
            }
            permissionsViewModels.GroupFieldPermissionsViewModelsList = groupFieldPermissionsViewModelsList;
            return(View(permissionsViewModels));
        }