I use the package: alanning/meteor-roles
I am building a simple UI for Admin to manage other users roles. A user can have more than one role, I am using checkbox to choose roles.
The problem I am facing is that I am unable to access the roles array that is stored in Meteor.users collection in my Client code.
In a helper, I am checking the user roles in order to load it in the UI as checked...
Note: this HTML is accessible for all users now just to test it. It will be available only for Admin after I get it to work. So I noticed that this code works only for signed in user and not for all users.
My code:
HTML:
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r1" checked="{{isRoleChecked 'r1'}}">r1</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r2" checked="{{isRoleChecked 'r2'}}">r2</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r3" checked="{{isRoleChecked 'r3'}}">r3</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r4" checked="{{isRoleChecked 'r4'}}">r4</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r5" checked="{{isRoleChecked 'r5'}}">r5</label>
<label class="checkbox-inline"><input type="checkbox" class="userRole" value="r6" checked="{{isRoleChecked 'r6'}}">r6</label>
isRoleChecked helper: (Client code)
isRoleChecked: function(value) {
// didn't work
roles = Roles.getRolesForUser(this._id);
if (roles) {
for(var i=0; i < roles.length; i++) {
if (roles[i] == value){
return true;
} else {
return false;
}
}
}
},