コード例 #1
0
        /// <summary>
        /// 为角色授权
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public bool AuthorizeRole(AuthorizeRoleRequest request)
        {
            var result             = false;
            var addRoleMenuButtons = new List <TRightsRoleMenuButton>();

            //没有为该角色授权
            if (request.MenuButtonId.IsNullOrEmpty())
            {
                using (var conn = DapperHelper.CreateConnection())
                {
                    conn.Execute(@"DELETE FROM dbo.t_rights_role_menu_button WHERE role_id= @RoleId AND button_id!=0;", new { @RoleId = request.RoleId });
                    result = true;
                    return(result);
                }
            }

            //有为该角色授权
            var menuButtons = request.MenuButtonId.Trim(new char[] { '|' }).Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries).ToList();

            if (menuButtons.HasValue())
            {
                foreach (var menuButton in menuButtons)
                {
                    var menuButtonArr = menuButton.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    addRoleMenuButtons.Add(new TRightsRoleMenuButton
                    {
                        RoleId   = request.RoleId,
                        MenuId   = menuButtonArr[0].ToInt(),
                        ButtonId = menuButtonArr[1].ToInt()
                    });
                }

                using (var conn = DapperHelper.CreateConnection())
                {
                    var trans = conn.BeginTransaction();

                    try
                    {
                        //先删除(不能删除buttonId=0的记录,否则登陆后无法访问顶级菜单)
                        conn.Execute(@"DELETE FROM dbo.t_rights_role_menu_button WHERE role_id= @RoleId AND button_id! = 0;", new { @RoleId = request.RoleId }, trans);

                        //后添加
                        conn.Execute(@"INSERT INTO dbo.t_rights_role_menu_button VALUES  ( @RoleId,@MenuId,@ButtonId);", addRoleMenuButtons, trans);

                        trans.Commit();
                        result = true;
                    }
                    catch (Exception ex)
                    {
                        trans.Rollback();
                    }
                }
            }

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 为角色授权
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ServiceResult <bool> AuthorizeRole(AuthorizeRoleRequest request)
        {
            //先删除该角色原来拥有的菜单和按钮权限
            //再新增该角色新选择的菜单和按钮权限
            var result = new ServiceResult <bool>
            {
                ReturnCode = ReturnCodeType.Error
            };

            var rs = _roleDao.AuthorizeRole(request);

            if (rs == true)
            {
                result.ReturnCode = ReturnCodeType.Success;
                result.Content    = true;
            }

            return(result);
        }
コード例 #3
0
ファイル: RoleController.cs プロジェクト: mcgrady525/Log
        public ActionResult Authorize(AuthorizeRoleRequest request)
        {
            var flag = false;
            var msg  = string.Empty;

            var rs = _roleService.AuthorizeRole(request);

            if (rs.ReturnCode == ReturnCodeType.Success && rs.Content == true)
            {
                flag = true;
                msg  = "授权成功!";
            }
            else
            {
                msg = rs.Message.IsNullOrEmpty() ? "授权失败!" : rs.Message;
            }

            return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet));
        }
コード例 #4
0
ファイル: RoleController.cs プロジェクト: zszqwe/Rights
        public ActionResult Authorize(AuthorizeRoleRequest request)
        {
            var flag = false;
            var msg  = string.Empty;

            using (var factory = new ChannelFactory <IRightsRoleService>("*"))
            {
                var client = factory.CreateChannel();
                var rs     = client.AuthorizeRole(request);
                if (rs.ReturnCode == ReturnCodeType.Success && rs.Content == true)
                {
                    flag = true;
                    msg  = "授权成功!";
                }
                else
                {
                    msg = rs.Message.IsNullOrEmpty() ? "授权失败!" : rs.Message;
                }
            }

            return(Json(new { success = flag, msg = msg }, JsonRequestBehavior.AllowGet));
        }
コード例 #5
0
ファイル: RightsRoleDao.cs プロジェクト: mcgrady525/Log
        /// <summary>
        /// 为角色授权
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public bool AuthorizeRole(AuthorizeRoleRequest request)
        {
            var result             = false;
            var addRoleMenuButtons = new List <TRightsRoleMenuButton>();

            //没有为该角色授权
            if (request.MenuButtonId.IsNullOrEmpty())
            {
                using (var conn = DapperHelper.CreateConnection())
                {
                    conn.Execute(@"DELETE FROM dbo.t_rights_role_menu_button WHERE role_id= @RoleId AND button_id!=0;", new { @RoleId = request.RoleId });
                    result = true;
                    return(result);
                }
            }

            //有为该角色授权
            var menuButtons = request.MenuButtonId.Trim(new char[] { '|' }).Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries).ToList();

            if (menuButtons.HasValue())
            {
                //如果有父节点和根节点要添加,否则登录后无法显示菜单
                List <int> parentMenuIds = new List <int>();

                foreach (var menuButton in menuButtons)
                {
                    var menuButtonArr = menuButton.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                    var menuId        = menuButtonArr[0].ToInt();
                    var buttonId      = menuButtonArr[1].ToInt();
                    addRoleMenuButtons.Add(new TRightsRoleMenuButton
                    {
                        RoleId   = request.RoleId,
                        MenuId   = menuId,
                        ButtonId = buttonId
                    });

                    var parentMenus = GetParentMenus(menuId);
                    foreach (var parentMenu in parentMenus)
                    {
                        if (!parentMenuIds.Contains(parentMenu.Id))
                        {
                            parentMenuIds.Add(parentMenu.Id);
                        }
                    }
                }

                if (parentMenuIds.HasValue())
                {
                    parentMenuIds = parentMenuIds.OrderBy(p => p).ToList();
                    foreach (var parentMenuId in parentMenuIds)
                    {
                        addRoleMenuButtons.Add(new TRightsRoleMenuButton
                        {
                            RoleId   = request.RoleId,
                            MenuId   = parentMenuId,
                            ButtonId = 0
                        });
                    }
                }

                using (var conn = DapperHelper.CreateConnection())
                {
                    var trans = conn.BeginTransaction();

                    try
                    {
                        //先删除
                        conn.Execute(@"DELETE FROM dbo.t_rights_role_menu_button WHERE role_id= @RoleId;", new { @RoleId = request.RoleId }, trans);

                        //后添加
                        conn.Execute(@"INSERT INTO dbo.t_rights_role_menu_button VALUES  ( @RoleId,@MenuId,@ButtonId);", addRoleMenuButtons, trans);

                        trans.Commit();
                        result = true;
                    }
                    catch (Exception ex)
                    {
                        trans.Rollback();
                    }
                }
            }

            return(result);
        }