예제 #1
0
 public ActionResult Create(WebManageMenus entity)
 {
     try
     {
         var oldlist = menuRepository.GetModel(i => i.ParentID == entity.ParentID);
         if (oldlist.FirstOrDefault(i => i.Name == entity.Name) != null)
         {
             ModelState.AddModelError("", "同级菜单不能重名...");
             return(View());
         }
         ModelState.Remove("IsDisplayMenuTree");
         if (ModelState.IsValid)
         {
             //菜单上的操作按钮
             var menu_authority = Array.ConvertAll(Request.Form.GetValues("Authority"), i => Convert.ToInt64(i));
             entity.Id                = -1;//自关联表要主动赋值
             entity.Authority         = menu_authority.BinaryOr(i => i);
             entity.About             = "";
             entity.Operator          = "";
             entity.IsDisplayMenuTree = Request["IsDisplayMenuTree"] == "1";
             menuRepository.Insert(entity);
             return(RedirectToAction("Index"));
         }
         else
         {
             ModelState.AddModelError("", "请把表单填写完整...");
             return(View());
         }
     }
     catch
     {
         return(View());
     }
 }
        /// <summary>
        /// 填充缺失数据表的菜单
        /// </summary>
        /// <returns></returns>
        public ActionResult DoAuthorityAction()
        {
            var menuList = new ManagerEfRepository <WebManageMenus>().GetModel().ToList();

            List <Tuple <string, string> > model = new List <Tuple <string, string> >();

            FillAuthorityAction(model);
            model = model.Where(i => !menuList.Select(j => j.LinkUrl).Contains(i.Item2)).ToList();
            var menu = menuRepository.Find(i => i.Name == "未分配的授权页面");

            if (menu == null)
            {
                var root = menuRepository.Find(i => !i.ParentID.HasValue);
                if (root == null)
                {
                    throw new ArgumentException("没有根节点!或者根节点的ParentID不是null");
                }
                menu = new WebManageMenus
                {
                    About             = "",
                    IsDisplayMenuTree = false,
                    Level             = 1,
                    LinkUrl           = "",
                    Name       = "未分配的授权页面",
                    Operator   = Lind.DDD.Authorization.CurrentUser.UserName,
                    ParentID   = root.Id,
                    SortNumber = 0
                };
                menuRepository.Insert(menu);
            }
            List <WebManageMenus> newMenuList = new List <WebManageMenus>();

            model.ForEach(i =>
            {
                newMenuList.Add(new WebManageMenus
                {
                    About             = "",
                    IsDisplayMenuTree = false,
                    Level             = menu.Level + 1,
                    LinkUrl           = i.Item2,
                    Name       = i.Item1,
                    Operator   = Lind.DDD.Authorization.CurrentUser.UserName,
                    ParentID   = menu.Id,
                    SortNumber = 0
                });
            });
            menuRepository.Insert(newMenuList);
            return(RedirectToAction("AuthorityAction", new { key = 1 }));
        }
예제 #3
0
        public ActionResult Edit(int id, WebManageMenus entity)
        {
            try
            {
                var oldlist = menuRepository.GetModel(i => i.ParentID == entity.ParentID);
                if (oldlist.FirstOrDefault(i => i.Name == entity.Name && i.Id != entity.Id) != null)
                {
                    ModelState.AddModelError("", "同级菜单不能重名...");
                    return(View());
                }

                ModelState.Remove("IsDisplayMenuTree");
                if (ModelState.IsValid)
                {
                    var old            = menuRepository.Find(id);
                    var menu_authority = Array.ConvertAll(Request.Form.GetValues("Authority"), i => Convert.ToInt64(i));
                    old.Authority         = menu_authority.BinaryOr(i => i);
                    old.LinkUrl           = entity.LinkUrl;
                    old.Level             = entity.Level;
                    old.IsDisplayMenuTree = Request["IsDisplayMenuTree"] == "1";
                    old.SortNumber        = entity.SortNumber;
                    old.Name = entity.Name;
                    menuRepository.Update(old);
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ModelState.AddModelError("", "请把表单填写完整...");
                    return(View());
                }
            }
            catch
            {
                return(View());
            }
        }
        protected override void Seed(ManagerContext context)
        {
            try
            {
                #region 操作命令字典表(操作权限的按钮)
                context.WebAuthorityCommands.Add(new WebAuthorityCommands
                {
                    Flag       = 1,
                    ActionName = "Details",
                    Name       = "查看",
                    Feature    = WebAuthorityCommandFeature.Dialog
                });
                context.WebAuthorityCommands.Add(new WebAuthorityCommands
                {
                    Flag       = 2,
                    ActionName = "Add",
                    Name       = "添加",
                    Feature    = WebAuthorityCommandFeature.None
                });
                context.WebAuthorityCommands.Add(new WebAuthorityCommands
                {
                    Flag       = 4,
                    ActionName = "Edit",
                    Name       = "编辑",
                    Feature    = WebAuthorityCommandFeature.None
                });

                context.WebAuthorityCommands.Add(new WebAuthorityCommands
                {
                    Flag       = 8,
                    ActionName = "Deleted",
                    Name       = "删除",
                    Feature    = WebAuthorityCommandFeature.Warn
                });

                context.WebAuthorityCommands.Add(new WebAuthorityCommands
                {
                    Flag       = 16,
                    ActionName = "Freeze",
                    Name       = "冻结",
                    Feature    = WebAuthorityCommandFeature.Warn
                });
                context.WebAuthorityCommands.Add(new WebAuthorityCommands
                {
                    Flag       = 32,
                    ActionName = "Approve",
                    Name       = "审核",
                    Feature    = WebAuthorityCommandFeature.Warn
                });
                context.SaveChanges();
                #endregion

                #region 部门表
                var department = new WebDepartments
                {
                    About      = "",
                    Name       = "根",
                    Level      = 0,
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0,
                    Sons       = new List <WebDepartments> {
                        new WebDepartments
                        {
                            About      = "",
                            Name       = "总裁办",
                            Level      = 1,
                            Operator   = "admin",
                            SortNumber = 0
                        },
                        new WebDepartments
                        {
                            About      = "",
                            Name       = "研发部",
                            Level      = 1,
                            Operator   = "admin",
                            SortNumber = 0,
                            Sons       = new  List <WebDepartments>
                            {
                                new WebDepartments
                                {
                                    About      = "",
                                    Name       = "设计部",
                                    Level      = 2,
                                    Operator   = "admin",
                                    SortNumber = 0
                                },
                                new WebDepartments
                                {
                                    About      = "",
                                    Name       = "产品部",
                                    Level      = 2,
                                    Operator   = "admin",
                                    SortNumber = 0
                                },
                                new WebDepartments
                                {
                                    About      = "",
                                    Name       = "开发部",
                                    Level      = 2,
                                    Operator   = "admin",
                                    SortNumber = 0,
                                    Sons       = new  List <WebDepartments> {
                                        new WebDepartments
                                        {
                                            About      = "",
                                            Name       = "C#组",
                                            Level      = 3,
                                            Operator   = "admin",
                                            SortNumber = 0
                                        },
                                        new WebDepartments
                                        {
                                            About      = "",
                                            Name       = "JAVA组",
                                            Level      = 3,
                                            Operator   = "admin",
                                            SortNumber = 0
                                        },
                                        new WebDepartments
                                        {
                                            About      = "",
                                            Name       = "IOS组",
                                            Level      = 3,
                                            Operator   = "admin",
                                            SortNumber = 0
                                        },
                                        new WebDepartments
                                        {
                                            About      = "",
                                            Name       = "Android组",
                                            Level      = 3,
                                            Operator   = "admin",
                                            SortNumber = 0
                                        },
                                    }
                                }
                            }
                             
                        },
                        new WebDepartments
                        {
                            About      = "",
                            Name       = "人力部",
                            Level      = 1,
                            Operator   = "admin",
                            SortNumber = 0,
                        },
                        new WebDepartments
                        {
                            About      = "",
                            Name       = "财物部",
                            Level      = 1,
                            Operator   = "admin",
                            SortNumber = 0,
                        }
                         
                    }
                };
                context.WebDepartments.Add(department);
                context.SaveChanges();
                #endregion

                #region 菜单表
                var menu = new WebManageMenus
                {
                    About      = "",
                    LinkUrl    = "",
                    Level      = 0,
                    Name       = "根",
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0
                };

                #region 系统菜单
                var systemMenu = new WebManageMenus
                {
                    About      = "",
                    LinkUrl    = "",
                    Level      = 1,
                    Name       = "系统管理",
                    Operator   = "admin",
                    SortNumber = 0
                };

                systemMenu.Sons.Add(new WebManageMenus
                {
                    About      = "",
                    LinkUrl    = "",
                    Level      = 2,
                    Name       = "菜单管理",
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0,
                    Sons       = new List <WebManageMenus> {
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebMenu/Create",
                            Level             = 3,
                            Name              = "添加菜单",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Create | Authority.Detail)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebMenu/Index",
                            Level      = 3,
                            Name       = "管理菜单",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Edit | Authority.Detail | Authority.Delete)
                        }
                        ,
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebMenu/Edit",
                            Level             = 3,
                            Name              = "编辑菜单",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Edit | Authority.Detail)
                        }
                        ,
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebMenu/Delete",
                            Level             = 3,
                            Name              = "删除菜单",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Delete)
                        }
                          
                    }
                });
                systemMenu.Sons.Add(new WebManageMenus
                {
                    About      = "",
                    LinkUrl    = "",
                    Level      = 2,
                    Name       = "部门管理",
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0,
                    Sons       = new List <WebManageMenus> {
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebDept/Create",
                            Level             = 3,
                            Name              = "添加部门",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Create | Authority.Detail)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebDept/Index",
                            Level      = 3,
                            Name       = "管理部门",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Edit | Authority.Detail | Authority.Delete)
                        }
                        ,
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebDept/Edit",
                            Level             = 3,
                            Name              = "编辑部门",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Edit | Authority.Detail)
                        }
                        ,
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebDept/Delete",
                            Level             = 3,
                            Name              = "删除部门",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Delete)
                        }
                          
                    }
                });
                systemMenu.Sons.Add(new WebManageMenus
                {
                    About      = "后台管理默认的主页",
                    LinkUrl    = "",
                    Level      = 2,
                    Name       = "用户管理",
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0,
                    Sons       = new List <WebManageMenus> {
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebUser/Create",
                            Level      = 3,
                            Name       = "添加用户",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Detail | Authority.Create)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebUser/Index",
                            Level      = 3,
                            Name       = "管理用户",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Edit | Authority.Detail | Authority.Delete | Authority.Freeze)
                        },
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebUser/Edit",
                            Level             = 3,
                            Name              = "编辑用户",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Edit | Authority.Detail)
                        }
                        ,
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebUser/Delete",
                            Level             = 3,
                            Name              = "删除用户",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Delete)
                        }
                          
                    }
                });
                systemMenu.Sons.Add(new WebManageMenus
                {
                    About      = "",
                    LinkUrl    = "",
                    Level      = 2,
                    Name       = "角色管理",
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0,
                    Sons       = new List <WebManageMenus> {
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebRole/Create",
                            Level      = 3,
                            Name       = "添加角色",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Detail | Authority.Create)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebRole/Index",
                            Level      = 3,
                            Name       = "管理角色",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Edit | Authority.Detail | Authority.Delete)
                        },
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebRole/Edit",
                            Level             = 3,
                            Name              = "编辑角色",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Edit | Authority.Detail)
                        }
                        ,
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebRole/Delete",
                            Level             = 3,
                            Name              = "删除角色",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Delete)
                        }
                          
                    }
                });
                systemMenu.Sons.Add(new WebManageMenus
                {
                    About      = "",
                    LinkUrl    = "",
                    Level      = 2,
                    Name       = "数据集管理",
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0,
                    Sons       = new List <WebManageMenus> {
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebDataCtrl/Create",
                            Level      = 3,
                            Name       = "添加类型",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Create | Authority.Detail)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebDataCtrl/Index",
                            Level      = 3,
                            Name       = "管理类型",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Edit | Authority.Detail | Authority.Delete)
                        }
                        ,
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebDataCtrl/Delete",
                            Level      = 3,
                            Name       = "删除类型",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Delete)
                        }
                        ,
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebDataCtrl/Edit",
                            Level             = 3,
                            Name              = "编辑类型",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Edit | Authority.Detail)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebDataSetting/Create",
                            Level      = 3,
                            Name       = "添加数据集",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Create | Authority.Detail)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebDataSetting/Index",
                            Level      = 3,
                            Name       = "管理数据集",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Edit | Authority.Detail | Authority.Delete)
                        },
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebDataSetting/Edit",
                            Level             = 3,
                            Name              = "编辑数据集",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Edit | Authority.Detail)
                        }
                        ,
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebDataSetting/Delete",
                            Level             = 3,
                            Name              = "删除数据集",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 0,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Delete)
                        }
                          
                    }
                });

                systemMenu.Sons.Add(new WebManageMenus
                {
                    About      = "",
                    LinkUrl    = "",
                    Level      = 2,
                    Name       = "操作日志管理",
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0,
                    Sons       = new List <WebManageMenus>
                    {
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebLogger/Index",
                            Level      = 3,
                            Name       = "日志列表",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Detail)
                        }
                    }
                });
                menu.Sons.Add(systemMenu);

                systemMenu.Sons.Add(new WebManageMenus
                {
                    About      = "",
                    LinkUrl    = "",
                    Level      = 2,
                    Name       = "权限按钮管理",
                    Operator   = "admin",
                    ParentID   = null,
                    SortNumber = 0,
                    Sons       = new List <WebManageMenus>
                    {
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebAuthorityCommand/Index",
                            Level      = 3,
                            Name       = "权限按钮列表",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 0,
                            Authority  = (long)(Authority.Create | Authority.Detail)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebAuthorityCommand/Create",
                            Level      = 3,
                            Name       = "添加权限按钮",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 1,
                            Authority  = (long)(Authority.Edit | Authority.Detail | Authority.Delete)
                        },
                        new WebManageMenus {
                            About             = "",
                            LinkUrl           = "/WebAuthorityCommand/Edit",
                            Level             = 3,
                            Name              = "编辑权限按钮",
                            Operator          = "admin",
                            ParentID          = null,
                            SortNumber        = 1,
                            IsDisplayMenuTree = false,
                            Authority         = (long)(Authority.Edit | Authority.Detail)
                        },
                        new WebManageMenus {
                            About      = "",
                            LinkUrl    = "/WebAuthorityCommand/AuthorityAction",
                            Level      = 3,
                            Name       = "权限页面管理",
                            Operator   = "admin",
                            ParentID   = null,
                            SortNumber = 1,
                        }
                    }
                });

                menu.Sons.Add(systemMenu);
                #endregion


                context.WebManageMenus.Add(menu);
                context.SaveChanges();
                #endregion

                #region 角色表
                var role = new WebManageRoles
                {
                    About        = "",
                    DepartmentID = department.Sons.FirstOrDefault().Id,
                    Operator     = "admin",
                    //OperatorAuthority = 1 | 2 | 4 | 8,
                    RoleName   = "管理员",
                    SortNumber = 0,
                };
                context.WebManageRoles.Add(role);
                context.SaveChanges();
                #endregion

                #region 角色与菜单授权
                List <WebManageRoles_WebManageMenus_Authority_R> webManageRoles_WebManageMenus_Authority_R = new List <WebManageRoles_WebManageMenus_Authority_R>();
                context.WebManageMenus.ToList().ForEach(item =>
                {
                    webManageRoles_WebManageMenus_Authority_R.Add(new WebManageRoles_WebManageMenus_Authority_R
                    {
                        MenuId    = item.Id,
                        Authority = 1 | 2 | 4 | 8 | 16 | 32,
                        RoleId    = role.Id,
                    });
                });
                context.WebManageRoles_WebManageMenus_Authority_R.AddRange(webManageRoles_WebManageMenus_Authority_R);
                context.SaveChanges();
                #endregion

                #region 用户表
                var user1 = new WebManageUsers
                {
                    Description        = "",
                    Email              = "*****@*****.**",
                    LoginName          = "admin",
                    Mobile             = "13800138000",
                    Operator           = "",
                    Password           = Lind.DDD.Utils.Encryptor.Utility.EncryptString("admin", Utils.Encryptor.Utility.EncryptorType.MD5),
                    RealName           = "管理员",
                    WebSystemID        = 1,
                    ThridUserId        = "",
                    DataCreateDateTime = DateTime.Now,
                    DataStatus         = Status.Normal,
                    LastModifyTime     = DateTime.Now,
                    WebDepartments     = new List <WebDepartments> {
                        department
                    },
                    WebManageRoles = new List <WebManageRoles>()
                    {
                        role
                    },
                };
                var it = department.Sons.Where(i => i.Name == "研发部").FirstOrDefault();

                var user2 = new WebManageUsers
                {
                    Description        = "",
                    Email              = "*****@*****.**",
                    LoginName          = "it",
                    Mobile             = "13800138000",
                    Operator           = "",
                    Password           = Lind.DDD.Utils.Encryptor.Utility.EncryptString("it", Utils.Encryptor.Utility.EncryptorType.MD5),
                    RealName           = "技术人员",
                    WebSystemID        = 1,
                    DataCreateDateTime = DateTime.Now,
                    DataStatus         = Status.Normal,
                    LastModifyTime     = DateTime.Now,
                    WebDepartments     = new List <WebDepartments> {
                        it.Sons.FirstOrDefault(i => i.Name == "开发部"),
                        it.Sons.FirstOrDefault(i => i.Name == "设计部")
                    },
                    WebManageRoles = new List <WebManageRoles>()
                    {
                        role
                    },
                };
                context.WebManageUsers.AddRange(new List <WebManageUsers> {
                    user1, user2
                });
                context.SaveChanges();

                #endregion

                base.Seed(context);
            }
            catch (DbEntityValidationException db)
            {
                throw db;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }