Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Facebook Sign In with Google Sign In with OpenID Sign In with Twitter
Support for Vanilla Forums Cloud product

In this Discussion

Follow Us


Check if a user is in a given role

edited February 2012 in Developers

Hi, What is the easiest way to check if a user belongs to a given role. For example in my application i want a developers role, which they will enter after agreeing to some terms. So certain pages I only want to show if they belong to that role. How would i go about doing this.

Thanks, Gary Mardell.

Answers

  • edited February 2012

    It appears its not the done thing in Vanilla, and roles are purely to define groups of permissions. So I will use that method, however for anyone wanting code to do this, there may be a better way:

    $Session = Gdn::Session();      
    $UserModel = Gdn::UserModel();      
    $Roles = $UserModel->GetRoles($Session->UserID);
    $RoleNames = ConsolidateArrayValuesByKey($Roles, 'Name');       
    if(in_array('Member', $RoleNames)) {
        $HasMemberRole = TRUE;
    }
    
  • jspautschjspautsch Themester ✭✭

    I think you're going about this the wrong way. You want to check if someone has a certain permission, not role. You use the role to assign that permission, and then just check the permission when viewing the page, which is really simple.

    For example:

    if (Gdn::Session()->CheckPermission('Vanilla.Categories.Manage'))
        //do stuff
Sign In or Register to comment.