My site allows users to apply by connecting their google account, as soon as an account is created they’re given a “pending” role (using alanning:roles package). I would like to have a table for admins to see when new applicants have applied, from there the admin can properly manage the users application (change role to accepted, declined, etc.). So, I have created my table, but it’s showing all users, I’m wondering if someone knows a way to make it so only users with the “pending” role are shown in my table?
Here is what I have so far:
TabularTables.ManageApplications = new Tabular.Table({
name: ‘ManageApplications’,
collection: Meteor.users,
allow: function (userId) {
return Roles.userIsInRole(userId, ‘admin’);
},
autoWidth: false,
oLanguage: {
“sSearch”: "Search: "
},
columns: [
{ data: //column details here },
{ data: //column details here },
{ data: //column details here },
{ data: //column details here },
{ data: //column details here },
],
});
This works, but it shows every user (not just users with the “pending” role).
I then created this to try and publish only data for pending users:
Meteor.publish(“pendingUsers”, function() {
var isAdmin = Roles.userIsInRole(this.userId, ‘admin’);
if (isAdmin) {
return Roles.getUsersInRole(‘pending’).fetch();
} else {
return null;
}
});
and subscribed by adding pub: "pendingUsers",
to my table. This somewhat works, it makes it so it only shows data in the columns for “pending” role users, but, it still lists every user and just has blank spaces where the data would be.
If anyone knows how I can achieve this it would be greatly appreciated if you could give some insight as I’ve been stuck on this for quite a while… I believe it may have to do with “Displaying Only Part of a Collection’s Data Set” in the Tabular readme, but I’m very unsure of how to set this up. Any examples or help is extremely appreciated.