예제 #1
0
        public IActionResult NewsPostCreateForm()
        {
            if (!_newsSecurity.AuthorizeForCreate())
            {
                return(Unauthorized());
            }

            var userContext = _userContextAccessor.GetContext();
            var newsPost    = _newsManager.CreateNewsPost(userContext.UserId);
            var versionInfo = _contentManager.GetVersionInfo(NewsManager.CONTENT_TYPE_NEWSPOST, newsPost.Id, newsPost.VersionCode).Result;

            // build the view model
            var newsPostViewModel = newsPost.ProjectTo <NewsPostViewModel>();

            newsPostViewModel.VersionLabel      = versionInfo.VersionLabel;
            newsPostViewModel.PostPrivacyConfig = BuildPostPrivacyOptions(newsPost);
            newsPostViewModel.Categories        = new NewsCategory[] { };

            return(this.PartialContentView(new ContentBindings(versionInfo)
            {
                ViewPath = "/UI/Views/Console/News/newsPostDesign.cshtml",
                ViewModel = newsPostViewModel,
                Editable = true
            }));
        }
예제 #2
0
 public OptionsMenu(NewsSecurityService newsSecurity)
 {
     MenuItems = new List <IMenuItem>()
     {
         new MenuItemSecureCustom()
         {
             Title             = "Manage My News",
             Url               = "javascript: void $.console('news')",
             Icon              = IconType.Theme,
             SortOrder         = 10,
             AuthorizeCallback = user => {
                 return(newsSecurity.AuthorizeForCreate());
             }
         }
     };
 }
예제 #3
0
        public ContentMenu(NewsSecurityService newsSecurity, IHttpContextAccessor httpContextAccessor)
        {
            var httpContext = httpContextAccessor.HttpContext;
            var returnUrl   = httpContext.Request.GetRelativeUrlEncoded();

            MenuItems = new List <IMenuItem>()
            {
                new MenuItemSecureCustom()
                {
                    Title             = "News Post",
                    Url               = "javascript: void $.console('news', '/sys/console/News/posts/create')",
                    Icon              = IconType.Theme,
                    AuthorizeCallback = user => {
                        return(newsSecurity.AuthorizeForCreate());
                    }
                }
            };
        }