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)); }
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)); }