public ActionResult Delete(int?id, FormCollection collection) { try { PermissionMapRepository ml = new PermissionMapRepository(); if (id != null && id > 0) { ml.Delete(id ?? 0); } else { if (string.IsNullOrEmpty(collection["IDs"])) { return(Content("未指定删除对象ID")); } string[] ids = collection["IDs"].Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (string item in ids) { ml.Delete(int.Parse(item)); } } return(Content("1")); } catch (Exception ex) { return(Content(ErrorWirter(RouteData, ex.Message))); } }
/// <summary> /// 首页 /// </summary> /// <returns></returns> public ActionResult Index() { ViewData["optionNames"] = new List <string>(); if (SiteHelper.Default.IsValidePermission == true) { if (CurrentMember.ID > 0) { //读取菜单 if (CurrentMember.RoleID == 1) { return(View()); } PermissionHelper permission = new PermissionHelper(); var plts = permission.PermissionDatas.Where(b => b.RID == CurrentMember.RoleID).ToList(); List <string> optionNames = new List <string>(); if (plts != null && plts.Count > 0) { foreach (var item in plts) { try { if (item.HasPermission == true) { var mid = new PermissionMapRepository().Search().Where(b => b.ID == item.PID && b.Name == "菜单").First().MID; optionNames.Add(new MenuRepository().GetMenu(mid).Name); } } catch { } } } ViewData["optionNames"] = optionNames; } } return(View()); }
public ActionResult Detail(int id) { try { PermissionMapRepository ml = new PermissionMapRepository(); PermissionMap obj = ml.GetPermissionMap(id); return(View(obj)); } catch (Exception ex) { return(Content(ContentIcon.Error + "|" + ErrorWirter(RouteData, ex.Message))); } }
public ActionResult Edit(int id) { try { PermissionMapRepository ml = new PermissionMapRepository(); PermissionMap obj = ml.GetPermissionMap(id); ViewData["ForeachMenuByOption"] = ForeachMenuByOption(obj.MID, 0); ViewData["ForeachPermissionByOption"] = ForeachPermissionByOption(obj.PID, 0, 1); return(View(obj)); } catch (Exception ex) { return(Content(ContentIcon.Error + "|" + ErrorWirter(RouteData, ex.Message))); } }
protected string GetMap() { string permissionTree = ""; MenuRepository ml = new MenuRepository(); mlts = ml.Search().Where(b => b.IsDeleted == false).ToList(); PermissionMapRepository pml = new PermissionMapRepository(); plts = pml.GetList(1, 1000); if (mlts != null) { permissionTree = GetMenuStr(new Menu() { ID = 0 }); } return(permissionTree); }
public ActionResult Create(FormCollection formCollection) { try { PermissionMapRepository ml = new PermissionMapRepository(); PermissionMap obj = new PermissionMap() { CreateDate = DateTime.Now, CreateUserID = ID, IsDeleted = false }; UpdateModel(obj); bool result = ml.Insert(obj) > 0 ? true : false; return(result ? Content(ContentIcon.Succeed + "|操作成功|/Admin/PermissionMap/Index") : Content(ContentIcon.Error + "|操作失败")); } catch (Exception ex) { return(Content(ContentIcon.Error + "|" + ErrorWirter(RouteData, ex.Message))); } }
private string ForeachPermissionByOption(int?id, int?parentID, int level) { StringBuilder html = new StringBuilder(); List <PermissionMap> menulist = new PermissionMapRepository().Search().Where(b => b.PID == parentID).ToList(); var i = 0; foreach (var item in menulist) { string selected = ""; if (id == item.ID) { selected = "selected"; } if (item.PID == 0 || item.PID == null) { html.Append("<option value='" + item.ID + "' " + selected + "> " + item.Name + " </option>"); } else { StringBuilder nbsp = new StringBuilder(); for (int j = 0; j < level * 2; j++) { nbsp.Append(" "); } if (i == menulist.Count() - 1) { html.Append("<option value='" + item.ID + "' " + selected + "> " + nbsp.ToString() + "└ " + item.Name + " </option>"); } else { html.Append("<option value='" + item.ID + "' " + selected + "> " + nbsp.ToString() + "├ " + item.Name + " </option>"); } } i++; html.Append(ForeachPermissionByOption(id, item.ID, level + 1)); } return(html.ToString()); }
public ActionResult Index(int?pageIndex, int?pageSize, PermissionMap entity) { try { PermissionMapRepository ml = new PermissionMapRepository(); entity.IsDeleted = false; PagedList <PermissionMap> page = ml.Search(entity).GetPagedList(pageIndex ?? PageIndex, pageSize ?? PageSize, Order, By); if (page != null && page.TotalItemCount > 0) { foreach (var item in page) { if (item.Menu.ID == 0) { PermissionDataRepository pl = new PermissionDataRepository(); var plts = pl.Search().Where(b => b.PID == item.ID).ToList(); if (plts != null) { pl.Deletes(plts); } ml.Delete(item); } } page = ml.Search(entity).GetPagedList(pageIndex ?? PageIndex, pageSize ?? PageSize, Order, By); } IList <PermissionMap> objs = page; if (Request.IsAjaxRequest()) { return(PartialView("_Index", objs)); } return(View(objs)); } catch (Exception ex) { return(Content(ContentIcon.Error + "|" + ErrorWirter(RouteData, ex.Message))); } }
public ActionResult Edit(int id, FormCollection formCollection) { try { PermissionMapRepository ml = new PermissionMapRepository(); PermissionMap obj = ml.GetPermissionMap(id); UpdateModel(obj); obj.LastUpdateDate = DateTime.Now; obj.LastUpdateUserID = ID; bool result = ml.Update(obj) > 0 ? true : false; return(result ? Content(ContentIcon.Succeed + "|操作成功") : Content(ContentIcon.Error + "|操作失败")); } catch (Exception ex) { return(Content(ContentIcon.Error + "|" + ErrorWirter(RouteData, ex.Message))); } }
/// <summary> /// 更新文件(非阻塞方式) /// </summary> /// <returns></returns> public bool Write() { bool result = false; if (site.IsFromFile == true) { var application = System.Web.HttpContext.Current.Application; application.Lock(); Init(); try { Thread mt = new Thread(new ThreadStart(() => { var mlts = new MenuRepository().Search().Where(b => b.IsDeleted == false).ToList(); if (mlts != null) { _Menus = mlts; string menusStr = Common.JsonHelper.JsonSerializer <List <Menu> >(mlts); menusStr = Common.EncryptionHelper.AESHelper.Encrypt(menusStr, password); string menuFile = menuFilePath + "Menu.html"; Common.FileHelper.DeleteFile(menuFile); Common.FileHelper.WriteFile(menuFile, menusStr); } })); Thread pmt = new Thread(new ThreadStart(() => { var pmlts = new PermissionMapRepository().Search().Where(b => b.IsDeleted == false).ToList(); if (pmlts != null) { _PermissionMaps = pmlts; string permissionmapsStr = Common.JsonHelper.JsonSerializer <List <PermissionMap> >(pmlts); permissionmapsStr = Common.EncryptionHelper.AESHelper.Encrypt(permissionmapsStr, password); string permissionmapFile = permissionMapFilePath + "PermissionMap.html"; Common.FileHelper.DeleteFile(permissionmapFile); Common.FileHelper.WriteFile(permissionmapFile, permissionmapsStr); } })); Thread pdt = new Thread(new ThreadStart(() => { var pdlts = new PermissionDataRepository().Search().Where(b => b.IsDeleted == false).ToList(); if (pdlts != null) { _PermissionDatas = pdlts; string permissiondatasStr = Common.JsonHelper.JsonSerializer <List <PermissionData> >(pdlts); permissiondatasStr = Common.EncryptionHelper.AESHelper.Encrypt(permissiondatasStr, password); string permissiondataFile = permissionDataFilePath + "PermissionData.html"; Common.FileHelper.DeleteFile(permissiondataFile); Common.FileHelper.WriteFile(permissiondataFile, permissiondatasStr); } })); mt.Start(); pmt.Start(); pdt.Start(); while (true) { if (mt.ThreadState == ThreadState.Stopped && pmt.ThreadState == ThreadState.Stopped && pdt.ThreadState == ThreadState.Stopped) { break; } System.Threading.Thread.Sleep(100); } result = true; } catch { } application.UnLock(); } return(result); }
/// <summary> /// 自动生成菜单及权限结构 /// </summary> /// <param name="title"></param> /// <param name="url"></param> /// <returns></returns> private static void AutoGenerateMenuAndMap(string title, string url) { DBContext db = new DBContext(); //分析当前地址 url = url.Substring(0, url.LastIndexOf("/") + 1) + "Index"; int menuID = 0; //寻找菜单 try { menuID = db.FromSql("SELECT * FROM [Menu] AS m WHERE [Url] LIKE '" + url.ToLower() + "'").ToFirst <Menu>().ID; if (menuID < 1) { throw new Exception("菜单中不存在则新建"); } } catch { try { //若当前数据库中不存在该菜单,则自动创建一个菜单 var mt = new Menu() { Name = title, ParentID = 0, Icon = "icos-list-images", Url = url, Sort = 0, Level = 1, IsDeleted = false, LastUpdateDate = DateTime.Now, CreateDate = DateTime.Now, CreateUserID = CurrentMember.ID, LastUpdateUserID = CurrentMember.ID }; MenuRepository ml = new MenuRepository(); menuID = ml.Insert(mt); } catch { } } //权限结构 var pmt = new PermissionMap(); bool hasMap = false; try { pmt = db.FromSql("SELECT * FROM [PermissionMap] AS pm WHERE [MID]=" + menuID + " AND [Name]='" + title + "'").ToFirst <PermissionMap>(); if (pmt != null && pmt.ID > 0) { hasMap = true; } } catch { } if (hasMap == false) { //自动产生权限结构 pmt = new PermissionMap() { SortID = GetSort(title), MID = menuID, Name = title, Description = title, IsBasic = 0, CreateUserID = CurrentMember.ID, CreateDate = DateTime.Now, LastUpdateDate = DateTime.Now, LastUpdateUserID = CurrentMember.ID, IsDeleted = false }; var pml = new PermissionMapRepository(); pml.Insert(pmt); } }
public ActionResult Create(int[] kids, FormCollection formCollection) { try { RoleRepository ml = new RoleRepository(); Role obj = new Role() { CreateDate = DateTime.Now, CreateUserID = ID, IsDeleted = false }; UpdateModel(obj); ml.Insert(obj); int rid = ml.Search(obj).First().ID; #region 更新引角色权限 if (rid > 1) { var pdl = new PermissionDataRepository(); pdl.DeleteByMIDOrRID(rid, 0); var pmlts = new PermissionMapRepository().GetList(1, 1000); if (pmlts != null) { string pData = formCollection["pData"]; foreach (var item in pmlts) { var pdt = new PermissionData() { PID = item.ID, RID = rid, HasPermission = false, CreateUserID = CurrentMember.ID, LastUpdateUserID = CurrentMember.ID, CreateDate = DateTime.Now, LastUpdateDate = DateTime.Now, IsDeleted = false }; if (!string.IsNullOrEmpty(pData)) { try { var pDataArr = pData.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (pDataArr.Contains(item.ID.ToString())) { pdt.HasPermission = true; } } catch { } } pdl.Insert(pdt); } } } PermissionHelper permission = new PermissionHelper(); permission.Write(); #endregion return(Content(ContentIcon.Succeed + "|保存成功|/admin/Role/Index")); } catch (Exception ex) { return(Content(ContentIcon.Error + "|" + ErrorWirter(RouteData, ex.Message))); } }