How to hide menu items/tabs in Admin

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
Hace 13 años
Hi:

NOpCommerce has so many features that sometimes the administration of a simple store which uses few featrures becomes too complicated. The same happens when administrativ functions are divided among several administrators with diferente roles. There can be so many menu items to which the administrators get a message  "You do not have permission to perform the selected operation"

Is there a way to hide menu items in Administration for  administrators who do not have the right to use them acordingly to the rights given in ACL?

Thank you in advance for your help
Hace 13 años
In the MenuControl.ascx file, you can add code before the recursive function that adds the menu items. Before the code enters the recursive function, you can place code like:

if (HttpContext.Current.User.IsInRole("Ditch Digger"))
{
    BuildMenuRecursive();
}


Something like that should work. I have implemented a similar function and it has worked.
Hace 13 años
Thank you very much deccks
Hace 13 años
Hello. With the solution above, are you saying to manually hide the menu items one at a time individually? is there no way to access the ACL and say if user.isInRole("Content Managers") then only show the menu items that they have permission to access? I would think that this feature would be the default behavior because users may get frustrated after being denied access to menu items that they click on. Maybe something for future enhancements.
Hace 13 años
myboxpro wrote:
Hello. With the solution above, are you saying to manually hide the menu items one at a time individually? is there no way to access the ACL and say if user.isInRole("Content Managers") then only show the menu items that they have permission to access? I would think that this feature would be the default behavior because users may get frustrated after being denied access to menu items that they click on. Maybe something for future enhancements.


I agree with this consideration.
Hace 13 años
This is pretty easy to do.. just got finished doing it or mostly finished will publish code when done tomorrow.

But to do it really right I'm having to add another dozen or so up to possibly 40+ additional CustomerActions (Access Control list options)
Currently I added an 7 additional one for each parent category, but will most likely add several more for additional control.

In the menucontrol.ascx.cs just query the ACLService.IsActionAllowed using the node["nopResourceTitle"] (stripping out spaces first) if its false skip buildmenurecursive.

Problem I'm having is the additional functionality that I'm adding to the Access Control list, basically parent child relationships.
Where Customers Home is the parent to
Manage Customers
Customer Roles
Online Customers
Customer Statistics.

But I will have this all squared away tomorrow and will share.
Hace 13 años
bhiers wrote:
This is pretty easy to do.. just got finished doing it or mostly finished will publish code when done tomorrow.

But to do it really right I'm having to add another dozen or so up to possibly 40+ additional CustomerActions (Access Control list options)
Currently I added an 7 additional one for each parent category, but will most likely add several more for additional control.

In the menucontrol.ascx.cs just query the ACLService.IsActionAllowed using the node["nopResourceTitle"] (stripping out spaces first) if its false skip buildmenurecursive.

Problem I'm having is the additional functionality that I'm adding to the Access Control list, basically parent child relationships.
Where Customers Home is the parent to
Manage Customers
Customer Roles
Online Customers
Customer Statistics.

But I will have this all squared away tomorrow and will share.


That is great!! Thank you very much.
Hace 13 años
Ok this isn't really any harder than I though just different.

I really wish the ACL used the sitemap to some extent but it doesn't. The easiest way I can think of to fix this with out having to re do alot of the ACL code is to just add another table to match pages to customeractions

Something like this

ManageCatalog (ID of 1)

CustomerActionID1 =
BulkEditProducts.aspx
Categories.aspx
CategoryAdd.aspx

So on and so on.

Then just do a look up when creating the menu via Menucontrol.

I'll have something going soon.
Hace 13 años
Got it working.. only limitation is the homepages as in contentmanagementhome.aspx or promotionshome.aspx
The easiest solution is just remove them from the sitemap, but using a sitemap + database to do ACL and menu/page structure is difficult to work with.

ACL and menu/page structure for the admin area should be completely contained in the database and remove the admin.sitemap would make ACL much simpler and have give more control over access.


Anyway to what I current have is an updated MenuControl.ascx.cs and an updated admin.sitemap

the admin.sitemap has been extended to add nopCustomerAction which equals the nodes CustomerAction Keyword.

The MenuControl.ascx.cs has been updated to read the nopCustomerAction variable and compare it to allowed access, if they don't have access it simply doesn't build the menu option.


[code]

<?xml version="1.0" encoding="utf-8" ?>
<siteMap enableLocalization="true" xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode title="Home"  description="Administration Home" nopResourceTitle="Admin.Sitemap.HomeTitle" nopResourceDescription="Admin.Sitemap.HomeDescription">
    <!-- Home -->
    <siteMapNode title="Dashboard"  url="~/administration/" IconUrl="~/administration/common/ico-dashboard.png" description="View the dashboard" nopResourceTitle="Admin.Sitemap.DashboardTitle" nopResourceDescription="Admin.Sitemap.DashboardDescription" />
    <!-- End Home -->

    <!-- Catalog -->
    <siteMapNode title="Catalog" url="~/administration/cataloghome.aspx" IconUrl="~/administration/common/ico-catalog.png" description="Catalog Home" nopResourceTitle="Admin.Sitemap.CatalogTitle" nopResourceDescription="Admin.Sitemap.CatalogDescription" >
      <siteMapNode title="Categories" url="~/administration/categories.aspx" description="Manage Product Categories" nopResourceTitle="Admin.Sitemap.CategoriesTitle" nopResourceDescription="Admin.Sitemap.CategoriesDescription" nopCustomerAction="ManageCatalog" />

      <siteMapNode title="Products" url="~/administration/productshome.aspx" description="Products Home" nopResourceTitle="Admin.Sitemap.ProductsHomeTitle" nopResourceDescription="Admin.Sitemap.ProductsHomeDescription" >
        <siteMapNode title="Manage Products" url="~/administration/products.aspx" description="Manage Products" nopResourceTitle="Admin.Sitemap.ProductsTitle" nopResourceDescription="Admin.Sitemap.ProductsDescription" nopCustomerAction="ManageCatalog" />
        <siteMapNode title="Bulk Edit Products" url="~/administration/bulkeditproducts.aspx" description="Bulk Edit Products" nopResourceTitle="Admin.Sitemap.BulkEditProductsTitle" nopResourceDescription="Admin.Sitemap.BulkEditProductsDescription" nopCustomerAction="ManageCatalog" />
        <siteMapNode title="Manage Reviews" url="~/administration/productreviews.aspx" description="Manage Product Reviews" nopResourceTitle="Admin.Sitemap.ProductReviewsTitle" nopResourceDescription="Admin.Sitemap.ProductReviewsDescription" />
        <siteMapNode title="Product Tags" url="~/administration/producttags.aspx" description="Manage Product Tags" nopResourceTitle="Admin.Sitemap.ProductTagsTitle" nopResourceDescription="Admin.Sitemap.ProductTagsDescription" nopCustomerAction="ManageCatalog" />
        <siteMapNode title="Low Stock Report" url="~/administration/productvariantslowstock.aspx" description="View Low Product Stock Report" nopResourceTitle="Admin.Sitemap.LowStockReportTitle" nopResourceDescription="Admin.Sitemap.LowStockReportDescription" nopCustomerAction="ManageCatalog" />
      </siteMapNode>

      <siteMapNode title="Attributes" url="~/administration/attributeshome.aspx" description="Attributes Home" nopResourceTitle="Admin.Sitemap.AttributesHomeTitle" nopResourceDescription="Admin.Sitemap.AttributesHomeDescription" nopCustomerAction="ManageCatalog" >
        <siteMapNode title="Product Attributes" url="~/administration/productattributes.aspx" description="Manage Product Attributes" nopResourceTitle="Admin.Sitemap.ProductAttributesTitle" nopResourceDescription="Admin.Sitemap.ProductAttributesDescription" nopCustomerAction="ManageCatalog" />
        <siteMapNode title="Product Specifications" url="~/administration/specificationattributes.aspx" description="Manage Specification Attributes" nopResourceTitle="Admin.Sitemap.SpecificationAttributesTitle" nopResourceDescription="Admin.Sitemap.SpecificationAttributesDescription" nopCustomerAction="ManageCatalog" />
        <siteMapNode title="Checkout Attributes" url="~/administration/checkoutattributes.aspx" description="Manage Checkout Attributes" nopResourceTitle="Admin.Sitemap.CheckoutAttributesTitle" nopResourceDescription="Admin.Sitemap.CheckoutAttributesDescription" nopCustomerAction="ManageCatalog" />
      </siteMapNode>

      <siteMapNode title="Manufacturers" url="~/administration/manufacturers.aspx" description="Manage Product Manufacturers" nopResourceTitle="Admin.Sitemap.ManufacturersTitle" nopResourceDescription="Admin.Sitemap.ManufacturersDescription" nopCustomerAction="ManageCatalog" />
    </siteMapNode>
    <!-- End Catalog -->

    <!-- Sales -->
    <siteMapNode title="Sales" url="~/administration/saleshome.aspx" IconUrl="~/administration/common/ico-sales.png" description="Sales Home" nopResourceTitle="Admin.Sitemap.SalesHomeTitle" nopResourceDescription="Admin.Sitemap.SalesHomeDescription" >
      <siteMapNode title="Orders" url="~/administration/orders.aspx" description="Manage Customer Orders" nopResourceTitle="Admin.Sitemap.OrdersTitle" nopResourceDescription="Admin.Sitemap.OrdersDescription" nopCustomerAction="ManageOrders" />
      <siteMapNode title="Recurring Payments" url="~/administration/recurringpayments.aspx" description="Manage Recurring Payments" nopResourceTitle="Admin.Sitemap.RecurringPaymentsTitle" nopResourceDescription="Admin.Sitemap.RecurringPaymentsDescription" nopCustomerAction="ManageOrders" />
      <siteMapNode title="Purchased Gift Cards" url="~/administration/purchasedgiftcards.aspx" description="Manage Purchased Gift Cards" nopResourceTitle="Admin.Sitemap.PurchasedGiftCardsTitle" nopResourceDescription="Admin.Sitemap.PurchasedGiftCardsDescription" nopCustomerAction="ManageGiftCards" />
      <siteMapNode title="Return Requests" url="~/administration/returnrequests.aspx" description="Manage Return Requests" nopResourceTitle="Admin.Sitemap.ReturnRequestsTitle" nopResourceDescription="Admin.Sitemap.ReturnRequestsDescription" />
      <siteMapNode title="Current Shopping Carts" url="~/administration/currentshoppingcarts.aspx" description="Manage Current Shopping Carts" nopResourceTitle="Admin.Sitemap.CurrentShoppingCartsTitle" nopResourceDescription="Admin.Sitemap.CurrentShoppingCartsDescription" nopCustomerAction="ManageOrders" />
      <siteMapNode title="Sales Report" url="~/administration/salesreport.aspx" description="View Sales Report" nopResourceTitle="Admin.Sitemap.SalesReportTitle" nopResourceDescription="Admin.Sitemap.SalesReportDescription" nopCustomerAction="ManageOrders" />
    </siteMapNode>
    <!-- End Sales -->

    <!-- Customers -->
    <siteMapNode title="Customers" url="~/administration/customershome.aspx" IconUrl="~/administration/common/ico-customers.png" description="Customers Home" nopResourceTitle="Admin.Sitemap.CustomersHomeTitle" nopResourceDescription="Admin.Sitemap.CustomersHomeDescription" >
      <siteMapNode title="Manage Customers" url="~/administration/customers.aspx" description="Manage Customers" nopResourceTitle="Admin.Sitemap.CustomersTitle" nopResourceDescription="Admin.Sitemap.CustomersDescription"  nopCustomerAction="ManageCustomers" />
      <siteMapNode title="Customer Roles" url="~/administration/customerroles.aspx" description="Manage Customer Roles" nopResourceTitle="Admin.Sitemap.CustomerRolesTitle" nopResourceDescription="Admin.Sitemap.CustomerRolesDescription" nopCustomerAction="ManageCustomerRoles" />
      <siteMapNode title="Online Customers" url="~/administration/onlinecustomers.aspx" description="Online Customers" nopResourceTitle="Admin.Sitemap.OnlineCustomersTitle" nopResourceDescription="Admin.Sitemap.OnlineCustomersDescription" nopCustomerAction="ManageCustomers" />
      <siteMapNode title="Customer Statistics" url="~/administration/customerreports.aspx" description="Customer Statistics" nopResourceTitle="Admin.Sitemap.CustomerReportsTitle" nopResourceDescription="Admin.Sitemap.CustomerReportsDescription" nopCustomerAction="ManageCustomers" />
    </siteMapNode>
    <!-- End Customers -->

    <!-- Promotions -->
    <siteMapNode title="Promotions" url="~/administration/promotionshome.aspx" IconUrl="~/administration/common/ico-promotions.png" description="Promotions Home" nopResourceTitle="Admin.Sitemap.PromotionsHomeTitle" nopResourceDescription="Admin.Sitemap.PromotionsHomeDescription" >
      <siteMapNode title="Affiliates" url="~/administration/affiliates.aspx" description="Manage Affiliates" nopResourceTitle="Admin.Sitemap.AffiliatesTitle" nopResourceDescription="Admin.Sitemap.AffiliatesDescription" nopCustomerAction="ManageAffiliates" />
      <siteMapNode title="Newsletter Subscribers" url="~/administration/newslettersubscribers.aspx" description="Manage Newsletter Subscribers" nopResourceTitle="Admin.Sitemap.NewsletterSubscribersTitle" nopResourceDescription="Admin.Sitemap.NewsletterSubscribersDescription" nopCustomerAction="ManageCampaigns" />
      <siteMapNode title="Campaigns" url="~/administration/campaigns.aspx" description="Manage Campaigns" nopResourceTitle="Admin.Sitemap.CampaignsTitle" nopResourceDescription="Admin.Sitemap.CampaignsDescription" nopCustomerAction="ManageCampaigns" />
      <siteMapNode title="Discounts" url="~/administration/discounts.aspx" description="Manage Discounts" nopResourceTitle="Admin.Sitemap.DiscountsTitle" nopResourceDescription="Admin.Sitemap.DiscountsDescription" nopCustomerAction="ManageDiscounts" />
      <siteMapNode title="Price Lists" url="~/administration/pricelist.aspx" description="Manage Price Lists" nopResourceTitle="Admin.Sitemap.PricelistTitle" nopResourceDescription="Admin.Sitemap.PricelistDescription" nopCustomerAction="ManagePriceLists" />
      <siteMapNode title="Providers" url="~/administration/promotionproviders.aspx" description="Promotion Providers" nopResourceTitle="Admin.Sitemap.PromotionProvidersTitle" nopResourceDescription="Admin.Sitemap.PromotionProvidersDescription" nopCustomerAction="ManagePromotionProviders" />
    </siteMapNode>
    <!-- End Promotions -->

    <!-- Content Management -->
    <siteMapNode title="Content&#160;Management" url="~/administration/contentmanagementhome.aspx" IconUrl="~/administration/common/ico-content.png" description="Content Management Home" nopResourceTitle="Admin.Sitemap.ContentManagementHomeTitle" nopResourceDescription="Admin.Sitemap.ContentManagementHomeDescription" >
      <siteMapNode title="Polls" url="~/administration/polls.aspx" description="Manage Polls" nopResourceTitle="Admin.Sitemap.PollsTitle" nopResourceDescription="Admin.Sitemap.PollsDescription" nopCustomerAction="ManagePolls" />
      <siteMapNode title="News" url="~/administration/newshome.aspx" description="News Home" nopResourceTitle="Admin.Sitemap.NewsHomeTitle" nopResourceDescription="Admin.Sitemap.NewsHomeDescription" nopCustomerAction="ManageNews" >
        <siteMapNode title="News Settings" url="~/administration/newssettings.aspx" description="Manage News Settings" nopResourceTitle="Admin.Sitemap.NewsSettingsTitle" nopResourceDescription="Admin.Sitemap.NewsSettingsDescription" nopCustomerAction="ManageNews" />
        <siteMapNode title="Manage News" url="~/administration/news.aspx" description="Manage News" nopResourceTitle="Admin.Sitemap.NewsTitle" nopResourceDescription="Admin.Sitemap.NewsDescription" nopCustomerAction="ManageNews" />
        <siteMapNode title="News comments" url="~/administration/newscomments.aspx" description="Manage News Comments" nopResourceTitle="Admin.Sitemap.NewsCommentsTitle" nopResourceDescription="Admin.Sitemap.NewsCommentsDescription" nopCustomerAction="ManageNews" />
      </siteMapNode>
      <siteMapNode title="Blog" url="~/administration/bloghome.aspx" description="Blog Home" nopResourceTitle="Admin.Sitemap.BlogHomeTitle" nopResourceDescription="Admin.Sitemap.BlogHomeDescription"  nopCustomerAction="ManageBlog" >
        <siteMapNode title="Blog Settings" url="~/administration/blogsettings.aspx" description="Manage Blog Settings" nopResourceTitle="Admin.Sitemap.BlogSettingsTitle" nopResourceDescription="Admin.Sitemap.BlogSettingsDescription" nopCustomerAction="ManageBlog" />
        <siteMapNode title="Manage Blog" url="~/administration/blog.aspx" description="Manage Blog" nopResourceTitle="Admin.Sitemap.BlogTitle" nopResourceDescription="Admin.Sitemap.BlogDescription" nopCustomerAction="ManageBlog" />
        <siteMapNode title="Blog comments" url="~/administration/blogcomments.aspx" description="Manage Blog Comments" nopResourceTitle="Admin.Sitemap.BlogCommentsTitle" nopResourceDescription="Admin.Sitemap.BlogCommentsDescription" nopCustomerAction="ManageBlog" />
      </siteMapNode>
      <siteMapNode title="Topics" url="~/administration/topics.aspx" description="Manage Topics" nopResourceTitle="Admin.Sitemap.TopicsTitle" nopResourceDescription="Admin.Sitemap.TopicsDescription" nopCustomerAction="ManageTopics" />
      <siteMapNode title="Forums" url="~/administration/forumshome.aspx" description="Forums Home" nopResourceTitle="Admin.Sitemap.ForumsHomeTitle" nopResourceDescription="Admin.Sitemap.ForumsHomeDescription"  nopCustomerAction="ManageForums" >
        <siteMapNode title="Forums Settings" url="~/administration/forumssettings.aspx" description="Manage Forums Settings" nopResourceTitle="Admin.Sitemap.ForumsSettingsTitle" nopResourceDescription="Admin.Sitemap.ForumsSettingsDescription" nopCustomerAction="ManageForums" />
        <siteMapNode title="Forums" url="~/administration/forums.aspx" description="Manage Forums" nopResourceTitle="Admin.Sitemap.ForumsTitle" nopResourceDescription="Admin.Sitemap.ForumsDescription" nopCustomerAction="ManageForums" />
      </siteMapNode>
      <siteMapNode title="Templates" url="~/administration/templateshome.aspx" description="Templates Home" nopResourceTitle="Admin.Sitemap.TemplatesHomeTitle" nopResourceDescription="Admin.Sitemap.TemplatesHomeDescription" nopCustomerAction="ManageTemplates" >
        <siteMapNode title="Product Templates" url="~/administration/producttemplates.aspx" description="Manage Product Templates" nopResourceTitle="Admin.Sitemap.ProductTemplatesTitle" nopResourceDescription="Admin.Sitemap.ProductTemplatesDescription" nopCustomerAction="ManageTemplates" />
        <siteMapNode title="Category Templates" url="~/administration/categorytemplates.aspx" description="Manage Category Templates" nopResourceTitle="Admin.Sitemap.CategoryTemplatesTitle" nopResourceDescription="Admin.Sitemap.CategoryTemplatesDescription" nopCustomerAction="ManageTemplates" />
        <siteMapNode title="Manufacturer Templates" url="~/administration/manufacturertemplates.aspx" description="Manage Manufacturer Templates" nopResourceTitle="Admin.Sitemap.ManufacturerTemplatesTitle" nopResourceDescription="Admin.Sitemap.ManufacturerTemplatesDescription" nopCustomerAction="ManageTemplates" />
        <siteMapNode title="Message templates" url="~/administration/messagetemplates.aspx" description="Manage Message Templates" nopResourceTitle="Admin.Sitemap.MessageTemplatesTitle" nopResourceDescription="Admin.Sitemap.MessageTemplatesDescription" nopCustomerAction="ManageTemplates" />
      </siteMapNode>
      <siteMapNode title="Localization" url="~/administration/localestringresources.aspx" description="Manage Store Localization" nopResourceTitle="Admin.Sitemap.LocaleStringResourcesTitle" nopResourceDescription="Admin.Sitemap.LocaleStringResourcesDescription" nopCustomerAction="ManageLanguagesLocalization" />
    </siteMapNode>
    <!-- End Content Management -->

    <!-- Configuration -->
    <siteMapNode title="Configuration" url="~/administration/configurationhome.aspx" IconUrl="~/administration/common/ico-configuration.png" description="Configuration Home" nopResourceTitle="Admin.Sitemap.ConfigurationTitle" nopResourceDescription="Admin.Sitemap.ConfigurationDescription" >
      <siteMapNode title="Global Settings" url="~/administration/globalsettings.aspx" description="Configure Global Settings" nopResourceTitle="Admin.Sitemap.GlobalSettingsTitle" nopResourceDescription="Admin.Sitemap.GlobalSettingsDescription" nopCustomerAction="ManageGlobalSettings" />
      <siteMapNode title="Email Accounts" url="~/administration/emailaccounts.aspx" description="Configure Email Accounts" nopResourceTitle="Admin.Sitemap.EmailAccountsTitle" nopResourceDescription="Admin.Sitemap.EmailAccountsDescription" nopCustomerAction="ManageEmailSettings" />
      <siteMapNode title="Blacklist" url="~/administration/blacklist.aspx" description="Manage banned IP addresses and networks" nopResourceTitle="Admin.Sitemap.BlacklistTitle" nopResourceDescription="Admin.Sitemap.BlacklistDescription" nopCustomerAction="ManageBlacklist" />
      <siteMapNode title="Payment" url="~/administration/paymentsettingshome.aspx" description="Payment Settings Home" nopResourceTitle="Admin.Sitemap.PaymentSettingsHomeTitle" nopResourceDescription="Admin.Sitemap.PaymentSettingsHomeDescription" nopCustomerAction="ManagePaymentSettings" >
        <siteMapNode title="Credit Cards" url="~/administration/creditcardtypes.aspx" description="Manage Credit Cards" nopResourceTitle="Admin.Sitemap.CreditCardTypesTitle" nopResourceDescription="Admin.Sitemap.CreditCardTypesDescription" nopCustomerAction="ManagePaymentSettings" />
        <siteMapNode title="Payment Methods" url="~/administration/paymentmethods.aspx" description="Manage Payment Methods" nopResourceTitle="Admin.Sitemap.PaymentMethodsTitle" nopResourceDescription="Admin.Sitemap.PaymentMethodsDescription" nopCustomerAction="ManagePaymentSettings" />
      </siteMapNode>
      <siteMapNode title="Tax" url="~/administration/taxsettingshome.aspx" description="Tax Home" nopResourceTitle="Admin.Sitemap.TaxSettingsHomeTitle" nopResourceDescription="Admin.Sitemap.TaxSettingsHomeDescription" nopCustomerAction="ManageTaxSettings" >
        <siteMapNode title="Tax Settings" url="~/administration/taxsettings.aspx" description="Manage Tax Settings" nopResourceTitle="Admin.Sitemap.TaxSettingsTitle" nopResourceDescription="Admin.Sitemap.TaxSettingsDescription" nopCustomerAction="ManageTaxSettings" />
        <siteMapNode title="Tax Providers" url="~/administration/taxproviders.aspx" description="Manage Tax Providers" nopResourceTitle="Admin.Sitemap.TaxProvidersTitle" nopResourceDescription="Admin.Sitemap.TaxProvidersDescription" nopCustomerAction="ManageTaxSettings" />
        <siteMapNode title="Tax Classes" url="~/administration/taxcategories.aspx" description="Manage Product Tax Classes" nopResourceTitle="Admin.Sitemap.TaxCategoriesTitle" nopResourceDescription="Admin.Sitemap.TaxCategoriesDescription" nopCustomerAction="ManageTaxSettings" />
      </siteMapNode>
      <siteMapNode title="Shipping" url="~/administration/shippingsettingshome.aspx" description="Shipping Settings Home" nopResourceTitle="Admin.Sitemap.ShippingSettingsHomeTitle" nopResourceDescription="Admin.Sitemap.ShippingSettingsHomeDescription" nopCustomerAction="ManageShippingSettings" >
        <siteMapNode title="Shipping Settings" url="~/administration/shippingsettings.aspx" description="Manage Shipping Settings" nopResourceTitle="Admin.Sitemap.ShippingSettingsTitle" nopResourceDescription="Admin.Sitemap.ShippingSettingsDescription" nopCustomerAction="ManageShippingSettings" />
        <siteMapNode title="Shipping Methods" url="~/administration/shippingmethods.aspx" description="Manage Shipping Methods" nopResourceTitle="Admin.Sitemap.ShippingMethodsTitle" nopResourceDescription="Admin.Sitemap.ShippingMethodsDescription" nopCustomerAction="ManageShippingSettings" />
        <siteMapNode title="Shipping Rate Computation" url="~/administration/shippingratecomputationmethods.aspx" description="Manage Shipping Rate Computation Methods" nopResourceTitle="Admin.Sitemap.ShippingRateComputationMethodsTitle" nopResourceDescription="Admin.Sitemap.ShippingRateComputationMethodsDescription" nopCustomerAction="ManageShippingSettings" />
      </siteMapNode>
      <siteMapNode title="Location" url="~/administration/locationsettingshome.aspx" description="Location Settings Home" nopResourceTitle="Admin.Sitemap.LocationSettingsHomeTitle" nopResourceDescription="Admin.Sitemap.LocationSettingsHomeDescription" >
        <siteMapNode title="Countries" url="~/administration/countries.aspx" description="Manage Countries" nopResourceTitle="Admin.Sitemap.CountriesTitle" nopResourceDescription="Admin.Sitemap.CountriesDescription" nopCustomerAction="ManageCountriesStates" />
        <siteMapNode title="States/Provinces" url="~/administration/stateprovinces.aspx" description="Manage States / Provinces" nopResourceTitle="Admin.Sitemap.StateProvincesTitle" nopResourceDescription="Admin.Sitemap.StateProvincesDescription" nopCustomerAction="ManageCountriesStates" />
        <siteMapNode title="Languages" url="~/administration/languages.aspx" description="Configure Language Settings" nopResourceTitle="Admin.Sitemap.LanguagesTitle" nopResourceDescription="Admin.Sitemap.LanguagesDescription" nopCustomerAction="ManageLanguagesLocalization" />
        <siteMapNode title="Currencies" url="~/administration/currencies.aspx" description="Manage Store Currencies" nopResourceTitle="Admin.Sitemap.CurrenciesTitle" nopResourceDescription="Admin.Sitemap.CurrenciesDescription" nopCustomerAction="ManageCurrencies" />
        <siteMapNode title="Warehouses" url="~/administration/warehouses.aspx" description="Manage Warehouses" nopResourceTitle="Admin.Sitemap.WarehousesTitle" nopResourceDescription="Admin.Sitemap.WarehousesDescription" nopCustomerAction="ManageWarehouses" />
      </siteMapNode>
      <siteMapNode title="Measures" url="~/administration/measures.aspx" description="Manage Measures" nopResourceTitle="Admin.Sitemap.MeasuresTitle" nopResourceDescription="Admin.Sitemap.MeasuresDescription" nopCustomerAction="ManageMeasures" />
      <siteMapNode title="Activity Log" url="~/administration/activityloghome.aspx" description="Activity Log Home" nopResourceTitle="Admin.Sitemap.ActivityLogHomeTitle" nopResourceDescription="Admin.Sitemap.ActivityLogHomeDescription" nopCustomerAction="ManageActivityLog" >
        <siteMapNode title="Activity Types" url="~/administration/activitytypes.aspx" description="Manage Activity Types" nopResourceTitle="Admin.Sitemap.ActivityTypesTitle" nopResourceDescription="Admin.Sitemap.ActivityTypesDescription" nopCustomerAction="ManageActivityLog" />
        <siteMapNode title="Log" url="~/administration/activitylog.aspx" description="View Activity Log" nopResourceTitle="Admin.Sitemap.ActivityLogTitle" nopResourceDescription="Admin.Sitemap.ActivityLogDescription"  nopCustomerAction="ManageActivityLog" />
      </siteMapNode>
      <siteMapNode title="Access control list" url="~/administration/acl.aspx" description="Manage access control list" nopResourceTitle="Admin.Sitemap.ACLTitle" nopResourceDescription="Admin.Sitemap.ACLDescription" nopCustomerAction="ManageACL" />
      <siteMapNode title="All Settings" url="~/administration/settings.aspx" description="Manage All Settings" nopResourceTitle="Admin.Sitemap.SettingsTitle" nopResourceDescription="Admin.Sitemap.SettingsDescription" nopCustomerAction="ManageGlobalSettings" />
      <siteMapNode title="SMS Providers" url="~/administration/smsproviders.aspx" description="Manage SMS Providers" nopResourceTitle="Admin.Sitemap.SMSProvidersTitle" nopResourceDescription="Admin.Sitemap.SMSProvidersDescription" nopCustomerAction="ManageSMSProviders" />
      <siteMapNode title="Third-party Integration" url="~/administration/thirdpartyintegration.aspx" description="Manage third-party integration" nopResourceTitle="Admin.Sitemap.ThirdPartyIntegrationTitle" nopResourceDescription="Admin.Sitemap.ThirdPartyIntegrationDescription" nopCustomerAction="ManageThirdPartyIntegration" />
    </siteMapNode>
    <!-- End Configuration -->

    <!-- System -->
    <siteMapNode title="System" url="~/administration/systemhome.aspx" IconUrl="~/administration/common/ico-system.png" description="System Home" nopResourceTitle="Admin.Sitemap.SystemHomeTitle" nopResourceDescription="Admin.Sitemap.SystemHomeDescription" >
      <siteMapNode title="Log" url="~/administration/logs.aspx" description="View Application Log" nopResourceTitle="Admin.Sitemap.LogsTitle" nopResourceDescription="Admin.Sitemap.LogsDescription" nopCustomerAction="ManageSystemLog" />
      <siteMapNode title="Message queue" url="
Hace 13 años
bhiers wrote:
Got it working.. only limitation is the homepages as in contentmanagementhome.aspx or promotionshome.aspx
The easiest solution is just remove them from the sitemap, but using a sitemap + database to do ACL and menu/page structure is difficult to work with.

ACL and menu/page structure for the admin area should be completely contained in the database and remove the admin.sitemap would make ACL much simpler and have give more control over access.


Anyway to what I current have is an updated MenuControl.ascx.cs and an updated admin.sitemap

the admin.sitemap has been extended to add nopCustomerAction which equals the nodes CustomerAction Keyword.

The MenuControl.ascx.cs has been updated to read the nopCustomerAction variable and compare it to allowed access, if they don't have access it simply doesn't build the menu option.


[code]

<?xml version="1.0" encoding="utf-8" ?>
<siteMap enableLocalization="true" xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode title="Home"  description="Administration Home" nopResourceTitle="Admin.Sitemap.HomeTitle" nopResourceDescription="Admin.Sitemap.HomeDescription">
    <!-- Home -->
    <siteMapNode title="Dashboard"  url="~/administration/" IconUrl="~/administration/common/ico-dashboard.png" description="View the dashboard" nopResourceTitle="Admin.Sitemap.DashboardTitle" nopResourceDescription="Admin.Sitemap.DashboardDescription" />
    <!-- End Home -->

.............
    <!-- System -->
    <siteMapNode title="System" url="~/administration/systemhome.aspx" IconUrl="~/administration/common/ico-system.png" description="System Home" nopResourceTitle="Admin.Sitemap.SystemHomeTitle" nopResourceDescription="Admin.Sitemap.SystemHomeDescription" >
      <siteMapNode title="Log" url="~/administration/logs.aspx" description="View Application Log" nopResourceTitle="Admin.Sitemap.LogsTitle" nopResourceDescription="Admin.Sitemap.LogsDescription" nopCustomerAction="ManageSystemLog" />
      <siteMapNode title="Message queue" url="

.............


Hi bhiers

Thank you!
Apparently the code that you posted is not complete. Could you pot it again or mail it to [email protected]

Thank you in advance for your help
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.