示例#1
0
        /// <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);
            }
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
            }
        }
示例#4
0
        /// <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);
        }
示例#5
0
        /// <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);
        }
示例#6
0
        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());
        }
示例#7
0
        /// <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);
            }
        }
示例#8
0
        /// <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));
        }
示例#10
0
        public HttpResponseMessage UpdateRights([FromUri] AddRightsRequest request)
        {
            RightsView rights = this._rightsService.UpdateRights(request);

            return(ToJson(rights));
        }
示例#11
0
        public HttpResponseMessage add_menuright_android(AddRightsRequest request)
        {
            var result = _rolesService.AddRoleRight_Android(request);

            return(result ? toJson(null, OperatingState.Success, "操作成功") : toJson(null, OperatingState.Failure, "操作失败"));
        }
示例#12
0
        /// <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
                });
            }
        }