Beispiel #1
0
        public ActionResult AddPrivilege(PrivilegeAddEdit model)
        {
            //处理其他请求
            var ac = Request["actionName"] ?? "";

            if (ac != "")
            {
                return(OtherAction(ac));
            }

            if (ModelState.IsValid)
            {
                if (sysPrivilegeBll.CheckPrivilegeName(model.Name.Trim(), model.Menu))
                {
                    ModelState.AddModelError("Name", "权限已存在");
                    return(View(model));
                }
                var user = Session[Constants.USER_KEY] as User;
                model.Creator = user.SysOperator.ID;

                var sysPrivilege = new SysPrivilege();
                sysPrivilege.ID         = -1;
                sysPrivilege.Menu       = model.Menu;
                sysPrivilege.Parent     = 0;
                sysPrivilege.Name       = model.Name.Trim();
                sysPrivilege.Clazz      = model.Clazz.Trim();
                sysPrivilege.Area       = model.Area.Trim();
                sysPrivilege.Controller = model.Controller.Trim();
                sysPrivilege.Method     = model.Method.Trim();
                if (!string.IsNullOrWhiteSpace(model.Parameter))
                {
                    sysPrivilege.Parameter = model.Parameter.Trim();
                }
                else
                {
                    sysPrivilege.Parameter = "";
                }
                sysPrivilege.Url        = model.Url;
                sysPrivilege.Reserve    = "";
                sysPrivilege.Remark     = model.Remark;
                sysPrivilege.Creator    = model.Creator;
                sysPrivilege.CreateTime = DateTime.Now;
                sysPrivilege.Auditor    = model.Creator;
                var result = sysPrivilegeBll.AddPrivilege(sysPrivilege);
                if (result == null)
                {
                    TempData["returnMsgType"] = "error";
                    TempData["returnMsg"]     = "新增失败";
                    //ModelState.AddModelError("errorresult", "新增失败");
                    return(View(model));
                }
                TempData["returnMsgType"] = "success";
                TempData["returnMsg"]     = "新增成功";
                return(RedirectToAction("AddPrivilege", "Privilege"));
            }
            return(View(model));
        }
Beispiel #2
0
 public SysPrivilege addPrivilege(SysPrivilege model)
 {
     try
     {
         db.SysPrivilege.Add(model);
         db.SaveChanges();
         return(model);
     }
     catch (Exception ex)
     {
         LogUtil.Exception("ExceptionLogger", ex);
         return(null);
     }
 }
Beispiel #3
0
 public SysPrivilege editPrivilege(SysPrivilege model)
 {
     try
     {
         db.SysPrivilege.Attach(model);
         db.Entry(model).State = EntityState.Modified;
         db.SaveChanges();
         return(model);
     }
     catch (Exception ex)
     {
         LogUtil.Exception("ExceptionLogger", ex);
         return(null);
     }
 }
Beispiel #4
0
        public void AddTest()
        {
            var model = new SysPrivilege
            {
                SysId              = "cf9d52cc-0500-4829-9611-fd0056961123",
                PrivilegeMaster    = PrivilegeMaster.User,
                PrivilegeMasterKey = "cf9d52cc-0500-4829-9611-fd0056961468",
                PrivilegeAccess    = PrivilegeAccess.Menu,
                PrivilegeAccessKey = "cf9d52cc-0500-4829-9611-fd0056961234",
                PrivilegeOperation = PrivilegeOperation.Enable,
                RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now.ToString(CultureInfo.InvariantCulture), "jim")
            };

            Console.WriteLine(repository.Add(model));

            model = new SysPrivilege
            {
                SysId              = "cf9d52cc-0500-4829-9611-fd0056961124",
                PrivilegeMaster    = PrivilegeMaster.Role,
                PrivilegeMasterKey = "cf9d52cc-0500-4829-9611-fd0056961488",
                PrivilegeAccess    = PrivilegeAccess.Menu,
                PrivilegeAccessKey = "cf9d52cc-0500-4829-9611-fd0056961234",
                PrivilegeOperation = PrivilegeOperation.Enable,
                RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now.ToString(CultureInfo.InvariantCulture), "jim")
            };
            Console.WriteLine(repository.Add(model));

            model = new SysPrivilege
            {
                SysId              = "cf9d52cc-0500-4829-9611-fd0056961125",
                PrivilegeMaster    = PrivilegeMaster.Role,
                PrivilegeMasterKey = "cf9d52cc-0500-4829-9611-fd0056961488",
                PrivilegeAccess    = PrivilegeAccess.Button,
                PrivilegeAccessKey = "cf9d52cc-0500-4829-9611-fd0056961921",
                PrivilegeOperation = PrivilegeOperation.Enable,
                RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now.ToString(CultureInfo.InvariantCulture), "jim")
            };
            Console.WriteLine(repository.Add(model));
        }
        public ActionResult AddPrivilege(PrivilegeAddEdit model)
        {
            if (ModelState.IsValid)
            {
                if (systemBll.checkPrivilegeName(model.Name.Trim(), model.Menu))
                {
                    ModelState.AddModelError("errorname", "权限已存在");
                    return(View(model));
                }
                var user = Session[Constants.USER_KEY] as User;
                model.Creator = user.SysOperator.ID;

                var sysPrivilege = new SysPrivilege();
                sysPrivilege.ID         = -1;
                sysPrivilege.Menu       = model.Menu;
                sysPrivilege.Parent     = 0;
                sysPrivilege.Name       = model.Name.Trim();
                sysPrivilege.Clazz      = model.Clazz.Trim();
                sysPrivilege.Area       = model.Area.Trim();
                sysPrivilege.Controller = model.Controller.Trim();
                sysPrivilege.Method     = model.Method.Trim();
                sysPrivilege.Parameter  = model.Parameter.Trim();
                sysPrivilege.Url        = model.Url;
                sysPrivilege.Reserve    = "";
                sysPrivilege.Remark     = model.Remark;
                sysPrivilege.Creator    = model.Creator;
                sysPrivilege.CreateTime = DateTime.Now;
                sysPrivilege.Auditor    = model.Creator;
                var result = systemBll.addPrivilege(sysPrivilege);
                if (result == null)
                {
                    ModelState.AddModelError("errorresult", "添加失败");
                    return(View(model));
                }
                return(RedirectToAction("AddPrivilege", "System"));
            }
            return(View(model));
        }
Beispiel #6
0
        /// <summary>
        /// 根据权限拥有者类别ID重新设定权限
        /// </summary>
        /// <param name="sysId"></param>
        /// <param name="privilegeMaster"></param>
        /// <param name="IDs">包括菜单、按钮编号</param>
        /// <param name="userName">当前操作用户</param>
        /// <returns></returns>
        public bool SetMenuPrivilege(string sysId, PrivilegeMaster privilegeMaster, string[] IDs, string userName)
        {
            //获取所有菜单
            IEnumerable <SysMenu> allMenus = menuRepository.GetList();
            //获取所有按钮
            IEnumerable <SysButton> allButtons = buttonRepository.GetList();

            //存储传入的menuId集合
            List <string> menus = (from menu in allMenus where IDs.Contains(menu.SysId) select menu.SysId).ToList();

            //存储传入的buttonId集合
            List <string> buttons = (from button in allButtons where IDs.Contains(button.SysId) select button.SysId).ToList();

            using (IDbTransaction tran = privilegeRepository.Connection.BeginTransaction())
            {
                //根据用户ID获取原来用户可用菜单
                //用于和现在选中的菜单进行判断,是否屏蔽原来可用菜单
                IEnumerable <SysMenu> userMenus = ServiceFactory.MenuService.GetPrivilegedSysMenuByUserId(sysId);

                this.privilegeRepository.DeleteSysPrivilegeByMaster(sysId, privilegeMaster, tran);

                #region 如果是用户权限,先将用户和角色的权限进行对比,将用户禁用而角色启用的菜单和按钮设置为禁用
                if (privilegeMaster == PrivilegeMaster.User)
                {
                    #region 设置菜单禁用
                    foreach (SysMenu userMenu in userMenus)
                    {
                        if (!menus.Contains(userMenu.SysId))
                        {
                            SysPrivilege sysPrivilege = new SysPrivilege
                            {
                                PrivilegeAccess    = PrivilegeAccess.Menu,
                                PrivilegeAccessKey = userMenu.SysId,
                                PrivilegeMaster    = privilegeMaster,
                                PrivilegeMasterKey = sysId,
                                PrivilegeOperation = PrivilegeOperation.Disable,
                                RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now, userName)
                            };

                            int addResult = privilegeRepository.Add(sysPrivilege, tran);

                            if (addResult == 0)
                            {
                                tran.Rollback();
                                return(false);
                            }

                            #region 设置按钮禁用
                            if (userMenu.Buttons != null)
                            {
                                foreach (SysButton button in userMenu.Buttons)
                                {
                                    if (!buttons.Contains(button.SysId))
                                    {
                                        SysPrivilege sysPrivilegeBt = new SysPrivilege
                                        {
                                            PrivilegeAccess    = PrivilegeAccess.Button,
                                            PrivilegeAccessKey = button.SysId,
                                            PrivilegeMaster    = privilegeMaster,
                                            PrivilegeMasterKey = sysId,
                                            PrivilegeOperation = PrivilegeOperation.Disable,
                                            RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now, userName)
                                        };

                                        addResult = privilegeRepository.Add(sysPrivilege, tran);

                                        if (addResult == 0)
                                        {
                                            tran.Rollback();
                                            return(false);
                                        }
                                    }
                                }
                            }
                            #endregion
                        }
                    }
                    #endregion
                }
                #endregion

                #region 角色权限,只存储可用菜单,不进行和现在选中菜单判断
                foreach (string menu in menus)
                {
                    SysPrivilege sysPrivilege = new SysPrivilege
                    {
                        PrivilegeAccess    = PrivilegeAccess.Menu,
                        PrivilegeAccessKey = menu,
                        PrivilegeMaster    = privilegeMaster,
                        PrivilegeMasterKey = sysId,
                        PrivilegeOperation = PrivilegeOperation.Enable,
                        RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now, userName)
                    };

                    int addResult = privilegeRepository.Add(sysPrivilege, tran);

                    if (addResult == 0)
                    {
                        tran.Rollback();
                        return(false);
                    }

                    #region 存储菜单下不可用按钮

                    var menuBts = allButtons.Where(x => x.MenuId == menu);

                    menuBts = menuBts.Where(x => (!buttons.Contains(x.SysId)));
                    foreach (SysButton sysButton in menuBts)
                    {
                        sysPrivilege = new SysPrivilege
                        {
                            PrivilegeAccess    = PrivilegeAccess.Button,
                            PrivilegeAccessKey = sysButton.SysId,
                            PrivilegeMaster    = privilegeMaster,
                            PrivilegeMasterKey = sysId,
                            PrivilegeOperation = PrivilegeOperation.Disable,
                            RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now, userName)
                        };

                        addResult = privilegeRepository.Add(sysPrivilege, tran);

                        if (addResult == 0)
                        {
                            tran.Rollback();
                            return(false);
                        }
                    }

                    #endregion
                }
                #endregion

                tran.Commit();
                return(true);
            }
        }
Beispiel #7
0
        public void InitData <T>(IEnumerable <T> lstSource, PrivilegeMaster master) where T : EntityBase
        {
            //获取现在已有的菜单、按钮数据。在将按钮添加到菜单属性中。
            var lstMenu = this.menuRepository.GetList();

            foreach (var sysMenu in lstMenu)
            {
                sysMenu.Buttons = this.menuRepository.GetButtons(sysMenu.SysId);
            }

            foreach (var source in lstSource)
            {
                foreach (var sysMenu in lstMenu)
                {
                    var model = new SysPrivilege
                    {
                        PrivilegeMaster    = master,
                        PrivilegeMasterKey = source.SysId,
                        PrivilegeAccess    = PrivilegeAccess.Menu,
                        PrivilegeAccessKey = sysMenu.SysId,
                        PrivilegeOperation = PrivilegeOperation.Disable,
                        RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now.ToString(CultureInfo.InvariantCulture), "System")
                    };

                    #region 检查该条数据是否存在
                    var p = new DynamicParameters();
                    p.Add("PrivilegeMaster", (int)master);
                    p.Add("PrivilegeMasterKey", source.SysId.Trim());
                    p.Add("PrivilegeAccess", (int)PrivilegeAccess.Menu);
                    p.Add("PrivilegeAccessKey", sysMenu.SysId.Trim());

                    var chkResult = privilegeRepository.GetList <int>(Constant.SqlCount,
                                                                      Constant.SqlExistsSysPrivilegeWhere, p);

                    if (chkResult.FirstOrDefault() == 0)
                    {
                        Console.WriteLine(privilegeRepository.Add(model));
                    }

                    #endregion

                    foreach (var sysButton in sysMenu.Buttons)
                    {
                        model = new SysPrivilege
                        {
                            PrivilegeMaster    = master,
                            PrivilegeMasterKey = source.SysId,
                            PrivilegeAccess    = PrivilegeAccess.Button,
                            PrivilegeAccessKey = sysButton.SysId,
                            PrivilegeOperation = PrivilegeOperation.Disable,
                            RecordStatus       = string.Format("创建时间:{0},创建人:{1}", DateTime.Now.ToString(CultureInfo.InvariantCulture), "System")
                        };

                        #region 检查该条数据是否存在

                        p = new DynamicParameters();
                        p.Add("PrivilegeMaster", (int)master);
                        p.Add("PrivilegeMasterKey", source.SysId.Trim());
                        p.Add("PrivilegeAccess", (int)PrivilegeAccess.Button);
                        p.Add("PrivilegeAccessKey", sysButton.SysId.Trim());
                        chkResult = privilegeRepository.GetList <int>(Constant.SqlCount,
                                                                      Constant.SqlExistsSysPrivilegeWhere, p);

                        if (chkResult.FirstOrDefault() == 0)
                        {
                            Console.WriteLine(privilegeRepository.Add(model));
                        }

                        #endregion
                    }
                }
            }
        }
Beispiel #8
0
 public SysPrivilege EditPrivilege(SysPrivilege model)
 {
     return(sysPrivilegeDal.EditPrivilege(model));
 }
Beispiel #9
0
 public SysPrivilege AddPrivilege(SysPrivilege model)
 {
     return(sysPrivilegeDal.AddPrivilege(model));
 }
Beispiel #10
0
 public SysPrivilege editPrivilege(SysPrivilege model)
 {
     return(sysPrivilegeService.editPrivilege(model));
 }
Beispiel #11
0
 public SysPrivilege addPrivilege(SysPrivilege model)
 {
     return(sysPrivilegeService.addPrivilege(model));
 }