Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MenuGroup"/> class.
 /// </summary>
 /// <param name="name_">set menu group display name.</param>
 /// <param name="position_">set position of menu group.</param>
 /// <param name="menuItems_">list of menu items to add to this menu group.</param>
 /// <param name="fontAwesomeIconType_">type for font awesome icon.</param>
 /// <param name="fontAwesomeClass_">icon linked to menu group.</param>
 public MenuGroup(string name_, uint position_, IEnumerable <MenuItem> menuItems_, FontAwesomeIcon.IconType fontAwesomeIconType_ = FontAwesomeIcon.IconType.Far, string fontAwesomeClass_ = "fa-bars")
 {
     Name                 = name_;
     Position             = position_;
     MenuItems            = menuItems_;
     FontAwesomeIconType  = fontAwesomeIconType_;
     FontAwesomeIconClass = fontAwesomeClass_;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MenuItem"/> class.
        /// </summary>
        /// <param name="url_">set menu item route url.</param>
        /// <param name="name_">set menu item display name.</param>
        /// <param name="position_">set menu item position in menu group.</param>
        /// <param name="fontAwesomeIconType_">type for font awesome icon.</param>
        /// <param name="fontAwesomeIconClass_">set menu item icon. If null, "fa-circle-o" will be used.</param>
        /// <param name="infrastructureAuthorizeAttributes_">set a list of <see cref="PermissionRequirementAttribute"/>.</param>
        /// <param name="microsoftAuthorizeAttributes_">set a list of <see cref="Microsoft.AspNetCore.Authorization.AuthorizeAttribute"/>.</param>
        public MenuItem(
            string url_,
            string name_,
            uint position_,
            FontAwesomeIcon.IconType fontAwesomeIconType_ = FontAwesomeIcon.IconType.Far,
            string fontAwesomeIconClass_ = "fa-circle",
            List <PermissionRequirementAttribute> infrastructureAuthorizeAttributes_ = null,
            List <Microsoft.AspNetCore.Authorization.AuthorizeAttribute> microsoftAuthorizeAttributes_ = null)
        {
            Url                  = url_;
            Name                 = name_;
            Position             = position_;
            FontAwesomeIconType  = fontAwesomeIconType_;
            FontAwesomeIconClass = fontAwesomeIconClass_;

            if (microsoftAuthorizeAttributes_ != null)
            {
                // Get the authorized roles and policies
                foreach (var attr in microsoftAuthorizeAttributes_)
                {
                    if (!string.IsNullOrWhiteSpace(attr.Roles))
                    {
                        _anyRequiredRoles.AddRange(attr.Roles.Split(','));
                    }

                    if (!string.IsNullOrWhiteSpace(attr.Policy))
                    {
                        _allRequiredPermissionIdentifiers.Add(attr.Policy);
                    }
                }
            }

            if (infrastructureAuthorizeAttributes_ != null)
            {
                // Get the authorized permission identifiers
                foreach (var attr in infrastructureAuthorizeAttributes_)
                {
                    if (!string.IsNullOrWhiteSpace(attr.PermissionIdentifier))
                    {
                        _allRequiredPermissionIdentifiers.Add(attr.PermissionIdentifier);
                    }
                }
            }
        }