/// <summary> /// 最近访问 /// </summary> /// <returns></returns> public ActionResult _RecentVisit() { int currentNavigationId = RouteData.Values.Get <int>("CurrentNavigationId", 0); if (currentNavigationId != 0) { int depth = navigationService.GetInitialNavigation(currentNavigationId).Depth; HttpCookie recentVisitCookies = Request.Cookies["ControlPanel_RecentVisit"]; string temp = null; if (recentVisitCookies != null && depth != 0) { temp = recentVisitCookies.Value.Replace("," + currentNavigationId.ToString(), "") + "," + currentNavigationId.ToString(); } else if (recentVisitCookies != null) { temp = recentVisitCookies.Value; } else if (depth != 0) { temp = "," + currentNavigationId.ToString(); } else { return(null); } HttpCookie cookie = new HttpCookie("ControlPanel_RecentVisit", temp); Response.Cookies.Add(cookie); List <InitialNavigation> recentVisitList = new List <InitialNavigation>(); IEnumerable <InitialNavigation> finallyRecentVisitList = new List <InitialNavigation>(); if (cookie != null) { string list = cookie.Value; if (!string.IsNullOrEmpty(list)) { list = list.Replace("%2C", ","); string[] idsstr = list.Split(new string[] { ",", "," }, StringSplitOptions.RemoveEmptyEntries); foreach (string ids in idsstr) { int navigationId = 0; int.TryParse(ids, out navigationId); InitialNavigation navigation = navigationService.GetInitialNavigation(navigationId); if (navigation != null) { recentVisitList.Add(navigation); } } recentVisitList.Reverse(); } } if (recentVisitList != null) { return(View(recentVisitList.Take(5))); } } return(null); }
/// <summary> /// 判断浏览着是否具有管理权限 /// </summary> /// <param name="navigation"></param> /// <param name="currentUser"></param> /// <returns></returns> public static bool IsControlPanelManageable(this InitialNavigation navigation, IUser currentUser) { if (currentUser.IsSuperAdministrator()) { return(true); } if (navigation.ApplicationId > 0) { if (DIContainer.Resolve <Authorizer>().IsAdministrator(navigation.ApplicationId)) { return(true); } } else if (currentUser.IsContentAdministrator() && !navigation.UrlRouteName.StartsWith("ControlPanel_User") && !navigation.UrlRouteName.StartsWith("ControlPanel_Settings")) { return(true); } if (navigation.UrlRouteName == "ControlPanel_Home" || navigation.UrlRouteName == "ControlPanel_Content_Home") { return(true); } return(false); }
/// <summary> /// 将初始化导航转换为EditModel /// </summary> /// <returns></returns> public static NavigationEditModel AsNavigationEditModel(this InitialNavigation navigation) { return(new NavigationEditModel { NavigationId = navigation.NavigationId, ApplicationId = navigation.ApplicationId, NavigationText = navigation.NavigationText, ResourceName = navigation.ResourceName, IsUseResourceItem = string.IsNullOrEmpty(navigation.NavigationText.Trim()), NavigationUrl = navigation.NavigationUrl == null ? string.Empty:navigation.NavigationUrl, UrlRouteName = navigation.UrlRouteName, IsUseRoute = string.IsNullOrWhiteSpace(navigation.NavigationUrl), IsIconName = !string.IsNullOrEmpty(navigation.IconName), IconName = string.IsNullOrEmpty(navigation.IconName) ? string.Empty :navigation.IconName, ImageUrl = (!string.IsNullOrEmpty(navigation.ImageUrl)) && (navigation.ImageUrl.StartsWith("http://")) ? navigation.ImageUrl : string.Empty, ImageName = (!string.IsNullOrEmpty(navigation.ImageUrl)) && !(navigation.ImageUrl.StartsWith("http://")) ? navigation.ImageUrl.Substring(navigation.ImageUrl.LastIndexOf('/') + 1) : string.Empty, IsWholeLink = (!string.IsNullOrEmpty(navigation.ImageUrl)) && navigation.ImageUrl.StartsWith("http://"), NavigationTarget = navigation.NavigationTarget, OnlyOwnerVisible = navigation.OnlyOwnerVisible, IsEnabled = navigation.IsEnabled, IsLocked = navigation.IsLocked }); }
/// <summary> /// 转换为InitialNavigation用于数据库存储 /// </summary> /// <returns></returns> public InitialNavigation AsInitialNavigation() { InitialNavigation initialNavigation = new InitialNavigation(); initialNavigation.NavigationId = this.NavigationId; initialNavigation.ApplicationId = this.ApplicationId; //判断应用 if (this.ApplicationId == 0) { initialNavigation.NavigationType = NavigationType.PresentAreaInitial; } else { initialNavigation.NavigationType = NavigationType.Application; } //使用资源项 if (this.IsUseResourceItem) { initialNavigation.ResourceName = this.ResourceName; initialNavigation.NavigationText = string.Empty; } else { initialNavigation.NavigationText = this.NavigationText; initialNavigation.ResourceName = string.Empty; } //使用路由 if (this.IsUseRoute) { initialNavigation.UrlRouteName = this.UrlRouteName ?? string.Empty; initialNavigation.NavigationUrl = string.Empty; } else { initialNavigation.NavigationUrl = this.NavigationUrl ?? string.Empty; initialNavigation.UrlRouteName = string.Empty; } if (IsIconName) { initialNavigation.IconName = this.IconName; initialNavigation.ImageUrl = null; } else { initialNavigation.IconName = null; if (this.IsWholeLink) { initialNavigation.ImageUrl = this.ImageUrl; } else { if (ImageName != null) { initialNavigation.ImageUrl = "~/Uploads/NavigationImage/" + this.ImageName; } else { initialNavigation.ImageUrl = null; } } } initialNavigation.NavigationTarget = this.NavigationTarget; initialNavigation.DisplayOrder = this.NavigationId; initialNavigation.OnlyOwnerVisible = this.OnlyOwnerVisible; initialNavigation.IsEnabled = this.IsEnabled; return(initialNavigation); }