public async Task <ActionResult> UserGroupPermissions(int id, int IdType, UserGroupPermissionsViewModels viewModel, IFormCollection collection) { UserGroupsEntity userGroupsEntity = null; UsersEntity usersEntity = null; UserPurviewEntity userPurviewEntity = null; if (IdType == 1) { if (id <= 0 && id != -2) { Utility.WriteMessage("权限配置必须指定会员组", "mClose"); return(Content("")); } userGroupsEntity = await _UserGroupsService.GetAsync(p => p.GroupID == id); if (userGroupsEntity == null) { Utility.WriteMessage("指定的会员组不存在", "mClose"); return(Content("")); } userPurviewEntity = userGroupsEntity.UserGroupPurview; } else if (IdType == 0) { if (id <= 0) { Utility.WriteMessage("权限配置必须指定会员", "mClose"); return(Content("")); } usersEntity = await _UsersService.GetAsync(p => p.UserID == id); if (usersEntity == null) { Utility.WriteMessage("指定的会员不存在", "mClose"); return(Content("")); } userPurviewEntity = usersEntity.UserPurview; } else { Utility.WriteMessage("权限类型没有指定", "mClose"); return(Content("")); } //字段权限 var ModelFieldPurview = collection["ModelFieldPurview"]; await _UserGroupsService.DeleteFieldPermissionFromGroup(id, IdType); await _UserGroupsService.AddFieldPermissionToUserGroup(id, OperateCode.ContentFieldInput, ModelFieldPurview, IdType); if (userPurviewEntity == null) { userPurviewEntity = new UserPurviewEntity(); } //菜单权限 var ModelPurview = collection["ModelPurview"]; userPurviewEntity.AllCheckCode = ModelPurview; //其他权限 userPurviewEntity.EnableComment = viewModel.PurviewEntity.EnableComment; userPurviewEntity.CommentNeedCheck = viewModel.PurviewEntity.CommentNeedCheck; userPurviewEntity.EnableUpload = viewModel.PurviewEntity.EnableUpload; userPurviewEntity.UploadSize = viewModel.PurviewEntity.UploadSize; userPurviewEntity.Discount = viewModel.PurviewEntity.Discount; userPurviewEntity.Overdraft = viewModel.PurviewEntity.Overdraft; if (ConfigHelper.Get <UserConfig>().EnablePoint || ConfigHelper.Get <UserConfig>().EnableValidNum) { userPurviewEntity.ChargeType = viewModel.PurviewEntity.ChargeType; } if (ConfigHelper.Get <UserConfig>().EnablePoint) { userPurviewEntity.ChargePointType = viewModel.PurviewEntity.ChargePointType; userPurviewEntity.TotalViewInfoNumber = viewModel.PurviewEntity.TotalViewInfoNumber; userPurviewEntity.ViewInfoNumberOneDay = viewModel.PurviewEntity.ViewInfoNumberOneDay; } bool bFlag = false; if (userGroupsEntity != null) { userGroupsEntity.GroupSetting = userPurviewEntity.ToXml(); bFlag = await _UserGroupsService.UpdateAsync(userGroupsEntity); } else if (usersEntity != null) { usersEntity.UserSetting = userPurviewEntity.ToXml(); bFlag = await _UsersService.UpdateAsync(usersEntity); } if (bFlag) { Utility.WriteMessage("设置权限成功", "mRefresh"); } else { Utility.WriteMessage("设置权限失败", "mClose"); } return(Content("")); }
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)); }