/// <summary> /// 根据条件递归添加父级菜单 /// </summary> /// <param name="request"></param> /// <param name="menuId"></param> private void AddParendMenu(AddRightsRequest request, Guid?menuId) { //判断是否存在上级页面 var parendObj = _rolesRights.Table.Where(s => s.ProjectRolesID == request.roleId && s.ProjectMenuID == menuId).ToList(); if (parendObj.Any()) { return; } var parendMenu = _menu.GetById(menuId); if (parendMenu != null) { _rolesRights.Insert(new RolesRights { Id = Guid.NewGuid(), CreatedTime = DateTime.Now, DeletedTime = null, DeletedState = 0, IsDefault = 0, ProjectRolesID = request.roleId, ProjectMenuID = parendMenu.Id, FunctionKey = parendMenu.FunctionKey, FunctionName = parendMenu.FunctionName, ImgUrl = parendMenu.FunctionUrl, ProjectMenuParendID = parendMenu.ParentID, DisplayNo = parendMenu.DisplayNo, Icon = parendMenu.Icon, FunctionType = parendMenu.FunctionType }); AddParendMenu(request, parendMenu.ParentID); } }
/// <summary> /// 当权限存在时,删除权限 /// </summary> /// <param name="request"></param> /// <returns></returns> private bool DeleteRight_Android(AddRightsRequest request) { var projectRolesRights = _rolesRights.Table.FirstOrDefault(s => s.ProjectRolesID == request.roleId && s.ProjectMenuID == request.menuId); if (projectRolesRights != null) { //删除选中项 _rolesRights.Delete(projectRolesRights); //如果不存在同级页面,则同步删除父级页面 if (!_rolesRights.Table.Any(s => s.ProjectRolesID == request.roleId && s.ProjectMenuParendID == projectRolesRights.ProjectMenuParendID)) { var parent = _rolesRights.Table.FirstOrDefault(s => s.ProjectRolesID == request.roleId && s.ProjectMenuID == projectRolesRights.ProjectMenuParendID); if (parent != null) { _rolesRights.Delete(parent); } } //同步删除所有子集(包括子集的子集) var childs = GetChildrens(request.menuId, request.roleId).ToList(); if (childs.Any()) { _rolesRights.DeleteList(childs); } _rolesRightsButtons.SaveChanges(); } return(true); }
/// <summary> /// 同步添加子集菜单和父级菜单 /// </summary> /// <param name="request"></param> /// <param name="pId"></param> private void AddChildOrParend(AddRightsRequest request, Guid?pId) { //同步添加子集菜单 var childs = GetMenuChilds(request.menuId); foreach (var item in childs.Where(item => !_rolesRights.Table.Any(s => s.ProjectRolesID == request.roleId && s.ProjectMenuID == item.Id))) { _rolesRights.Insert(new RolesRights() { Id = Guid.NewGuid(), CreatedTime = DateTime.Now, DeletedTime = null, DeletedState = 0, IsDefault = 0, ProjectRolesID = request.roleId, ProjectMenuID = item.Id, FunctionKey = item.FunctionKey, FunctionName = item.FunctionName, ImgUrl = item.FunctionUrl, ProjectMenuParendID = item.ParentID, DisplayNo = item.DisplayNo, Icon = item.Icon, FunctionType = item.FunctionType }); } //如果当前选择项不是一级菜单,则还需要同步添加父级菜单 if (GetLevelByMenu(request.menuId) == 2 || GetLevelByMenu(request.menuId) == 3) { //同步添加父级菜单 AddParendMenu(request, pId); } }
/// <summary> /// 当权限不存在时,添加权限 /// </summary> /// <param name="request"></param> private void AddRight_Android(AddRightsRequest request) { //判断当前选中项是否已经存在,避免重复添加 var parendObj = _rolesRights.Table.FirstOrDefault(s => s.ProjectRolesID == request.roleId && s.ProjectMenuID == request.menuId); if (parendObj == null) { var menuObj = _menu.GetById(request.menuId); parendObj = new RolesRights { Id = Guid.NewGuid(), CreatedTime = DateTime.Now, DeletedTime = null, DeletedState = 0, IsDefault = 0, ProjectRolesID = request.roleId, ProjectMenuID = menuObj.Id, FunctionKey = menuObj.FunctionKey, FunctionName = menuObj.FunctionName, ImgUrl = menuObj.FunctionUrl, ProjectMenuParendID = menuObj.ParentID, DisplayNo = menuObj.DisplayNo, Icon = menuObj.Icon, FunctionType = menuObj.FunctionType }; _rolesRights.Insert(parendObj); } AddChildOrParend(request, parendObj.ProjectMenuParendID); }
/// <summary> /// 当权限存在时,删除权限 /// </summary> /// <param name="request"></param> /// <param name="projectRolesRightse"></param> /// <returns></returns> private bool DeleteRight(AddRightsRequest request, RolesRights projectRolesRightse) { //表示删除的是一级页面 if (projectRolesRightse.ProjectMenuParendID == null) { _rolesRights.Delete(projectRolesRightse); //同步删除所有的二级页面 var projectRolesRightses = _rolesRights.Table.Where(s => s.ProjectRolesID == request.roleId && s.ProjectMenuParendID == projectRolesRightse.ProjectMenuID).ToList(); if (projectRolesRightses.Count > 0) { _rolesRights.DeleteList(projectRolesRightses); //foreach (var btnList in projectRolesRightses.Select(item => _rolesRightsButtons.Table.Where(s => s.RolesRightsID == item.Id).ToList()).Where(btnList => btnList.Any())) //{ // _rolesRightsButtons.DeleteList(btnList); //} foreach (var item in projectRolesRightses) { //删除所有二级页面的操作权限 var btnList = _rolesRightsButtons.Table.Where(s => s.ProjectRolesRightsID == item.Id).ToList(); if (btnList.Any()) { _rolesRightsButtons.DeleteList(btnList); } } } } //表示删除的是二级页面 else { //删除页面权限 _rolesRights.Delete(projectRolesRightse); //删除操作权限 var btnList = _rolesRightsButtons.Table.Where(s => s.ProjectRolesRightsID == projectRolesRightse.Id).ToList(); if (btnList.Any()) { _rolesRightsButtons.DeleteList(btnList); } //获取同级页面 var projectRolesRightses = _rolesRights.Table.Where(s => s.ProjectRolesID == request.roleId && s.ProjectMenuParendID == projectRolesRightse.ProjectMenuParendID).ToList(); //如果不存在同级页面,则删除父级页面 if (!projectRolesRightses.Any()) { var projectRolesRights = _rolesRights.Table.FirstOrDefault(s => s.ProjectRolesID == request.roleId && s.ProjectMenuID == projectRolesRightse.ProjectMenuParendID); if (projectRolesRights != null) { _rolesRights.Delete(projectRolesRights); } } } _rolesRightsButtons.SaveChanges(); return(true); }
public RightsView UpdateRights(AddRightsRequest request) { Rights rights = this._rightsRepository.FindBy(request.Id); if (rights == null) { throw new EntityIsInvalidException <string>(request.Id.ToString()); } rights.UpdateRights(request.Name, request.Url, request.Description, request.IsShow, request.Icon); this._uow.Commit(); return(rights.ConvertToRightsView()); }
/// <summary> /// 添加、删除角色页面权限 /// </summary> /// <param name="request"></param> /// <returns></returns> public bool AddRoleRight_Android(AddRightsRequest request) { try { //表示在Tree中选中了全部取消 if (!request.Mark) { return(DeleteRight_Android(request)); } AddRight_Android(request); _rolesRights.SaveChanges(); return(true); } catch (Exception) { return(false); } }
/// <summary> /// 添加、修改角色页面权限 /// </summary> /// <param name="request"></param> /// <returns></returns> public bool AddRoleRight(AddRightsRequest request) { try { //获取当前操作的权限菜单 var projectRolesRightse = _rolesRights.Table.FirstOrDefault(s => s.ProjectRolesID == request.roleId && s.ProjectMenuID == request.menuId); //如果存在,则删除 if (projectRolesRightse != null) { return(DeleteRight(request, projectRolesRightse)); } AddRight(request); _rolesRights.SaveChanges(); return(true); } catch (Exception) { return(false); } }
/// <summary>修改组织 /// 修改组织 /// </summary> /// <param name="id"></param> /// <param name="name"></param> /// <param name="description"></param> /// <returns></returns> public JsonResult UpdateRights(AddRightsRequest request) { RightsView rights = this._rightsService.UpdateRights(request); return(Json(rights, JsonRequestBehavior.AllowGet)); }
public HttpResponseMessage UpdateRights([FromUri] AddRightsRequest request) { RightsView rights = this._rightsService.UpdateRights(request); return(ToJson(rights)); }
public HttpResponseMessage add_menuright_android(AddRightsRequest request) { var result = _rolesService.AddRoleRight_Android(request); return(result ? toJson(null, OperatingState.Success, "操作成功") : toJson(null, OperatingState.Failure, "操作失败")); }
/// <summary> /// 当权限不存在时,添加权限 /// </summary> /// <param name="request"></param> private void AddRight(AddRightsRequest request) { //如果不存在,则添加 var menuObj = _menu.GetById(request.menuId); //添加页面权限 var obj = new RolesRights { Id = Guid.NewGuid(), CreatedTime = DateTime.Now, DeletedTime = null, DeletedState = 0, IsDefault = 0, ProjectRolesID = request.roleId, ProjectMenuID = menuObj.Id, FunctionKey = menuObj.FunctionKey, FunctionName = menuObj.FunctionName, ImgUrl = menuObj.FunctionUrl, ProjectMenuParendID = menuObj.ParentID, DisplayNo = menuObj.DisplayNo, Icon = menuObj.Icon, FunctionType = menuObj.FunctionType }; _rolesRights.Insert(obj); //表示添加的是一级页面 if (obj.ProjectMenuParendID == null) { var rights = new List <RolesRights>(); //同步添加二级页面 var projectMenus = _menu.Table.Where(s => s.ParentID == obj.ProjectMenuID); foreach (var projectMenu in projectMenus) { rights.Add(new RolesRights() { Id = Guid.NewGuid(), CreatedTime = DateTime.Now, DeletedTime = null, DeletedState = 0, IsDefault = 0, ProjectRolesID = request.roleId, ProjectMenuID = projectMenu.Id, FunctionKey = projectMenu.FunctionKey, FunctionName = projectMenu.FunctionName, ImgUrl = projectMenu.FunctionUrl, ProjectMenuParendID = projectMenu.ParentID, DisplayNo = projectMenu.DisplayNo, Icon = projectMenu.Icon, FunctionType = projectMenu.FunctionType }); } _rolesRights.AddRange(rights); } //表示添加的是二级页面 else { //判断是否存在一级页面 var parendObj = _rolesRights.Table.Where(s => s.ProjectRolesID == request.roleId && s.ProjectMenuID == obj.ProjectMenuParendID).ToList(); if (parendObj.Any()) { return; } //不存在则同步添加 var parendMenu = _menu.GetById(obj.ProjectMenuParendID); _rolesRights.Insert(new RolesRights { Id = Guid.NewGuid(), CreatedTime = DateTime.Now, DeletedTime = null, DeletedState = 0, IsDefault = 0, ProjectRolesID = request.roleId, ProjectMenuID = parendMenu.Id, FunctionKey = parendMenu.FunctionKey, FunctionName = parendMenu.FunctionName, ImgUrl = parendMenu.FunctionUrl, ProjectMenuParendID = parendMenu.ParentID, DisplayNo = parendMenu.DisplayNo, Icon = parendMenu.Icon, FunctionType = parendMenu.FunctionType }); } }