Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
 /// <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);
 }
Exemplo n.º 3
0
        /// <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
            });
        }
Exemplo n.º 4
0
        /// <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);
        }