public IActionResult AddAdminMenu(AdminMenu model)
        {
            if (!ModelState.IsValid)
            {
                string messages = string.Join("; ", ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage));

                tip.Message = messages;
                return(Json(tip));
            }
            //判断
            if (AdminMenu.FindCount(AdminMenu._.MenuKey == model.MenuKey, null, null, 0, 0) > 0)
            {
                tip.Message = "菜单KEY已经存在,请填写其他的!";
            }
            IList <TargetEvent> listevent = TargetEvent.FindAll(null, TargetEvent._.Rank.Asc(), null, 0, 0);

            string[] eventkeys           = Request.Form["eventkey"];
            List <AdminMenuEvent> listme = new List <AdminMenuEvent>();

            if (eventkeys != null && eventkeys.Length > 0)
            {
                foreach (string s in eventkeys)
                {
                    if (Utils.IsInt(s))
                    {
                        TargetEvent te = listevent.FirstOrDefault(t => t.Id == int.Parse(s));
                        if (te != null)
                        {
                            AdminMenuEvent tmp = new AdminMenuEvent();
                            tmp.EventId   = te.Id;
                            tmp.EventKey  = te.EventKey;
                            tmp.EventName = te.EventName;
                            tmp.MenuKey   = model.MenuKey;
                            listme.Add(tmp);
                        }
                    }
                }
            }
            model.Insert();
            if (listme != null && listme.Count > 0)
            {
                listme.ForEach(s =>
                {
                    s.MenuId = model.Id;
                });
                listme.Insert();
            }
            tip.Status    = JsonTip.SUCCESS;
            tip.Message   = "添加后台菜单成功";
            tip.ReturnUrl = "close";
            return(Json(tip));
        }
        public IActionResult Index()
        {
            bool hasData = AdminMenu.FindCount(null, null, null, 0, 0) > 0;

            if (!hasData)
            {
                return(Redirect("/Home/Install"));
            }
            ViewBag.cfg   = cfg;
            ViewBag.about = Article.FindById(1);//关于我们
            return(View("~/Views/Home/Index.cshtml"));
        }
        public IActionResult DelAdminMenu(int id)
        {
            AdminMenu entity = AdminMenu.Find(AdminMenu._.Id == id);

            if (entity == null)
            {
                tip.Message = "系统找不到本记录!";
                return(Json(tip));
            }
            if (AdminMenu.FindCount(AdminMenu._.PId == entity.Id, null, null, 0, 0) > 0)
            {
                tip.Message = "本菜单有下级菜单,不允许删除!";
                return(Json(tip));
            }
            entity.Delete();
            tip.Status  = JsonTip.SUCCESS;
            tip.Message = "删除后台菜单成功";
            return(Json(tip));
        }
Exemple #4
0
        public IActionResult Index()
        {
            if (Admin.IsAdminLogin())
            {
                return(Redirect("/AdminCP"));
            }

            bool hasData = AdminMenu.FindCount(null, null, null, 0, 0) > 0;

            if (!hasData)
            {
                return(Redirect("/Home/Install"));
            }

            string key = Utils.GetRandomChar(12);

            SessionHelper.WriteSession("des_key", key);
            ViewBag.key = key;
            return(View());
        }
        public IActionResult Install()
        {
            string lockPath = $"{_env.WebRootPath}{Path.DirectorySeparatorChar}install.lock";

            if (System.IO.File.Exists(lockPath))
            {
                return(EchoTip("COMCMS系统已经安装过,如果需要重新安装,请删除程序wwwroot目录下的install.lock文件!", false, "/"));
            }
            //判断数据库类型 mysql mssql 暂时只支持这两种
            string sqltype         = "mysql";
            string sqlProviderName = Utils.GetSetting("connectionStrings:dbconn:providerName");

            if (sqlProviderName == "System.Data.SqlClient")
            {
                sqltype = "mssql";
            }
            bool hasData = AdminMenu.FindCount(null, null, null, 0, 0) > 0;

            ViewBag.hasData = hasData;
            ViewBag.sqltype = sqltype;
            return(View());
        }
        public IActionResult EditAdminMenu(AdminMenu model)
        {
            if (!ModelState.IsValid)
            {
                string messages = string.Join("; ", ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage));
                tip.Message = messages;
                return(Json(tip));
            }
            if (model.Id <= 0)
            {
                tip.Message = "错误参数传递!";
                return(Json(tip));
            }
            AdminMenu entity = AdminMenu.Find(AdminMenu._.Id == model.Id);

            if (entity == null)
            {
                tip.Message = "系统找不到本记录!";
                return(Json(tip));
            }
            //赋值
            entity.MenuName = model.MenuName;
            //如果key修改了。判断是否有存在
            if (entity.MenuKey != model.MenuKey)
            {
                if (AdminMenu.FindCount(AdminMenu._.MenuKey == model.MenuKey & AdminMenu._.Id != entity.Id, null, null, 0, 0) > 0)
                {
                    tip.Message = "您修改的菜单KEY已经存在,请填写其他的!";
                    return(Json(tip));
                }
                entity.MenuKey = model.MenuKey;
            }
            entity.Link      = model.Link;
            entity.IsHide    = model.IsHide;
            entity.ClassName = model.ClassName;
            entity.Rank      = model.Rank;
            if (entity.PId != model.PId)
            {
                //重新获取level和location
                entity.Level    = AdminMenu.GetNewLevel(model.PId);
                entity.Location = AdminMenu.GetNewLocation(model.PId);
            }
            entity.PId = model.PId;
            entity.Update();

            //处理权限
            IList <AdminMenuEvent> oldevent = AdminMenuEvent.FindAll(AdminMenuEvent._.MenuId == entity.Id, null, null, 0, 0);

            //所有的权限
            IList <TargetEvent> listevent = TargetEvent.FindAll(TargetEvent._.Id > 0, TargetEvent._.Rank.Asc(), null, 0, 0);

            //新的权限
            string[] eventkeys           = Request.Form["eventkey"];
            List <AdminMenuEvent> listme = new List <AdminMenuEvent>();

            if (eventkeys != null && eventkeys.Length > 0)
            {
                foreach (string s in eventkeys)
                {
                    if (Utils.IsInt(s))
                    {
                        TargetEvent te = listevent.FirstOrDefault(t => t.Id == int.Parse(s));
                        if (te != null)
                        {
                            AdminMenuEvent tmp = new AdminMenuEvent();
                            tmp.EventId   = te.Id;
                            tmp.EventKey  = te.EventKey;
                            tmp.EventName = te.EventName;
                            tmp.MenuKey   = model.MenuKey;
                            tmp.MenuId    = entity.Id;
                            listme.Add(tmp);
                        }
                    }
                }
            }

            //判断是否在旧的里面
            listme.ForEach(s =>
            {
                var oe = oldevent.FirstOrDefault(o => o.EventId == s.EventId);
                //如果是旧列表存在,则删掉旧列表里面的,然后更新自己
                if (oe != null)
                {
                    s.Id = oe.Id;
                    s.Update();
                    oldevent.Remove(oe);
                }
                else
                {
                    //如果不存在,则是新增的。直接新增处理
                    s.Insert();
                }
            });
            //如果还有,则删除旧列表里面的
            if (oldevent != null && oldevent.Count > 0)
            {
                oldevent.Delete();
            }

            tip.Status    = JsonTip.SUCCESS;
            tip.Message   = "编辑后台菜单成功";
            tip.ReturnUrl = "close";
            return(Json(tip));
        }