私は流星の表形式を使用しており、複合アドオンを公開しています。
ユーザー ロールに基づいてユーザー データをパブリッシュ/サブスクライブしたいのですが、ユーザー データはクライアントに送信されますが、表形式のアドオンによって表示されません (管理者ロールの場合のみ、スーパー管理者ロールの場合は正常に表示されます。以下のコードを参照してください)。
私の公開コード:
Meteor.publishComposite('tabular_users', function (tableName, ids, fields) {
this.unblock();
return {
find: function () {
if (Roles.userIsInRole(this.userId, ['super-admin'], 'admin')) {
return Meteor.users.find({_id: {$in: ids}}, {fields: fields});
} else if (Roles.userIsInRole(this.userId, ['admin'], 'property-managers')) {
return Meteor.users.find({ "$and" : [
{ _id: { $in: ids } },
{ "profile.property_manager_id": Meteor.users.findOne(this.userId).profile.property_manager_id }
]}, {fields: fields});
} else {
this.stop();
return;
}
},
children: [
{
find: function(user) {
return PropertyManagers.find(
{ _id: user.profile.property_manager_id }
);
}
}
]
};
});