I am creating a modal to manage the permissions of a user. But when the modal is loaded. The console returns true
from the server, if a users has the role. While {{#if hasRole}
} is still showing the wrong label.
editUserPermissionsModal.html
<tbody>
{{#each roles}}
<tr>
<td>{{this.name}}</td>
<td>
{{#if hasRole}}
<span class="label label-success">Toegang</span>
{{else}}
<span class="label label-danger">Geweigerd</span>
{{/if}}
</td>
<td>
<select class="roleSelect">
{{#if hasRole}}
<option value="allow">Toestaan</option>
<option value="deny">Weigeren</option>
{{else}}
<option value="deny">Weigeren</option>
<option value="allow">Toestaan</option>
{{/if}}
</select>
</td>
</tr>
{{/each}}
</tbody>
editUserPermissionsModal.js
Template.editUserPermissionsModal.helpers({
roles: function() {
return Roles.getAllRoles();
},
hasRole: function(){
var userId = Session.get("editing_user");
var role = this.name;
Meteor.call("checkRole", userId, role, function(error, result){
if(error){
console.log("error", error);
}
if(result){
console.log(result);
return result;
}
});
}
});
Template.editUserPermissionsModal.events({
"change .roleSelect": function(event, template){
var addRole = event.target.value;
if(addRole == 'allow') {
var user = Session.get("editing_user");
var role = this.name;
Meteor.call('addRoleToUser', user, role)
}
}
});
server.js
checkRole:function(userId, role) {
return Roles.userIsInRole(userId, role);
}