示例#1
0
        public WidgetDefinition Add(
            [NotNull] Type viewComponentType,
            [CanBeNull] ILocalizableString displayName = null)
        {
            var widget = new WidgetDefinition(viewComponentType, displayName);

            Add(widget);
            return(widget);
        }
示例#2
0
        public void Add(WidgetDefinition widget)
        {
            var existingWidget = _widgetsByName.GetOrDefault(widget.Name);

            if (existingWidget != null)
            {
                _widgetsByType[existingWidget.ViewComponentType] = widget;
            }

            _widgetsByName[widget.Name] = widget;
            _widgetsByType[widget.ViewComponentType] = widget;
        }
示例#3
0
文件: WidgetManager.cs 项目: zxbe/abp
        private async Task <bool> IsGrantedAsyncInternal(WidgetDefinition widget, string wantedWidgetName)
        {
            if (widget == null)
            {
                throw new ArgumentNullException(wantedWidgetName);
            }

            if (widget.RequiredPolicies.Any())
            {
                foreach (var requiredPolicy in widget.RequiredPolicies)
                {
                    if (!(await AuthorizationService.AuthorizeAsync(requiredPolicy).ConfigureAwait(false)).Succeeded)
                    {
                        return(false);
                    }
                }
            }
            else if (widget.RequiresAuthentication && !CurrentUser.IsAuthenticated)
            {
                return(false);
            }

            return(true);
        }
示例#4
0
        protected virtual async Task <IHtmlContent> InvokeWidgetAsync(object arguments, WidgetDefinition widget)
        {
            PageWidgetManager.TryAdd(widget);

            var wrapperAttributesBuilder = new StringBuilder($"class=\"abp-widget-wrapper\" data-widget-name=\"{widget.Name}\"");

            if (widget.RefreshUrl != null)
            {
                wrapperAttributesBuilder.Append($" data-refresh-url=\"{widget.RefreshUrl}\"");
            }

            return(new HtmlContentBuilder()
                   .AppendHtml($"<div {wrapperAttributesBuilder}>")
                   .AppendHtml(await DefaultViewComponentHelper.InvokeAsync(widget.ViewComponentType, arguments))
                   .AppendHtml("</div>"));
        }
示例#5
0
 public bool TryAdd(WidgetDefinition widget)
 {
     return(GetWidgetList()
            .AddIfNotContains(widget));
 }