Ho il problema di seguito con Meteor: Ho un amministratore, che deve vedere tutti gli utenti registrati. Ma tutti gli altri utenti non dovrebbero avere la possibilità di vedere gli altri utenti. Perciò ho pubblicato il seguente codice sul lato serverMeteor - Pubblica tutti gli utenti sul client solo per l'amministratore
Meteor.publish("adminUsers", function(){
var result;
if (Roles.userIsInRole(this.userId, ["admin"]))
{
result = Meteor.users.find();
}
//console.log(result);
return result;
});
Sul lato client mi abbono a questo con
Meteor.subscribe("adminUsers");
e fare
AllUsers = new Meteor.Collection("adminUsers");
Ora voglio ottenere tutti gli utenti presenti in un modello con questo codice:
Template.adminUserverwaltung.AllUsers = function(){
console.log(AllUsers.find());
return AllUsers.find();
}
e mostrare il risultato nel modello con questo codice:
<template name="adminUserverwaltung">
{{#each AllUsers}}
{{this.username}}
{{/each}}
</template>
Ma purtroppo non funziona ... Qualcuno mi può aiutare forse?
Questo sembra essere scoraggiato da [meteor.com: Meteor.user()] (http://docs.meteor.com/#/full/meteor_user) che documenta di non usare 'Meteor.user()' all'interno di 'Meteor.publish()' – Paul
Potrebbe essere cambiato dal 2013. ['publish'] (http://docs.meteor.com/#/full/meteor_publish) la documentazione suggerisce di usare' this.userId'. – rzymek
Sì, ho scoperto che avevo bisogno di raccogliere '_id' per gli amministratori e popolare un array globale sul lato server per il confronto con' this.userId'. Cercare di sondare le proprietà dei record utente non funzionava per me all'interno della pubblicazione. – Paul