How to check customer role

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
12 years ago
Hi All,


How to check in nopCommerce2.30 customer role.

With Regards
Murali
12 years ago
Not sure if this answers your question.  If you are talking about a role you added then the following will do:

if (customer.IsInCustomerRole("rolename"))
{
}
11 years ago
hi i tried using this code in _ColumnsOne.cshtml and got an error CS0103: The name 'customer' does not exist in the current context

do i need to put additional code in before i can use it? im using nop v 2.6
11 years ago
That code won't work in .cshtml files (Views).  Do you have Visual Studio 2010?  Do you know MVC?
11 years ago
ah i see, i am a front end developer so i know a little mvc concept but i do not have visual studio
11 years ago
The right way (MVC) to do this is in a Controller.  But here's a hack you can put at the top of the View (.cshtml file)


@using Nop.Services.Customers;

@{
    bool customerHasRoleX = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer.IsInCustomerRole("X");
}


You can then reference the customerHasRoleX variable - you will need to reference it as @customerHasRoleX, if you are not within the scope of another @{ ...} block
11 years ago
I have verion 2.8.  and get error The type or namespace name 'IWorkContext' could not be found (are you missing a using directive or an assembly reference?

I put in the reference @using Nop.Services.Customers, as well
11 years ago
try adding

@using Nop.Core
11 years ago
Thank you that did it!! Nothing like a break after searching for a week!
11 years ago
At the top of the cshtml, I needed:

@using Nop.Core;
@using Nop.Core.Domain.Customers;
@using Nop.Core.Infrastructure;
@using Nop.Services.Customers;


Then in the page I added:

@if (EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer.IsInCustomerRole("xx"))
{
     //my stuff
}

Works great, thanks!
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.