Exemple #1
0
        private async Task Iterate(SiteMapNode siteMap, AdminSiteMap siteMapNode)
        {
            await PopulateNode(siteMap, siteMapNode);

            foreach (var item in siteMapNode.ChildNodes)
            {
                var mainsite = new SiteMapNode();
                siteMap.ChildNodes.Add(mainsite);
                await Iterate(mainsite, item);
            }
        }
Exemple #2
0
        private async Task PopulateNode(SiteMapNode siteMap, AdminSiteMap siteNode)
        {
            siteMap.ActionName      = siteNode.ActionName;
            siteMap.AllPermissions  = siteNode.AllPermissions;
            siteMap.ControllerName  = siteNode.ControllerName;
            siteMap.IconClass       = siteNode.IconClass;
            siteMap.OpenUrlInNewTab = siteNode.OpenUrlInNewTab;
            siteMap.ResourceName    = siteNode.ResourceName;
            siteMap.SystemName      = siteNode.SystemName;
            siteMap.Url             = siteNode.Url;

            if (siteNode.PermissionNames.Any())
            {
                if (siteNode.AllPermissions)
                {
                    siteMap.Visible = true;
                    foreach (var permissionName in siteNode.PermissionNames)
                    {
                        if (!await _permissionService.Authorize(permissionName.Trim()))
                        {
                            siteMap.Visible = false;
                        }
                    }
                }
                else
                {
                    siteMap.Visible = false;
                    foreach (var permissionName in siteNode.PermissionNames)
                    {
                        if (await _permissionService.Authorize(permissionName.Trim()))
                        {
                            siteMap.Visible = true;
                        }
                    }
                }
            }
            else
            {
                siteMap.Visible = true;
            }
        }