【发布时间】:2015-06-18 03:56:27
【问题描述】:
我正在使用用户角色系统 (alanning:roles) 编写一个流星应用程序,我的角色是基于组的。当用户知道我的组 url 时,它被允许访问该组并在该组中获取角色“defaultUser”。
允许localUser 订阅一个组的所有本地内容。
根据群号,我也发布了一些内容。
问题是:订阅没有重新订阅。
工作流程:
- 用户访问应用,
- 调用meteor-method获取默认角色
- 获取默认角色
- 订阅发布
- 如果用户具有正确的角色,则发布(完整组)发布内容
我的出版物看起来像:
Meteor.publish "thisGroupPublic", (id) ->
return db.groups.find({_id: id}, {fields: {onlypublicones...}}
Meteor.publishComposite "thisGroupReactive", (id) ->
return {
find: () ->
if !Roles.userIsInRole(@userId, "defaultUser", id)
@ready()
console.log("[thisGroupReactive] => No Rights")
return;
return db.groups.find({_id: id});
children: [
{
find: (group) ->
return db.contents.find({groups: {$in: [group._id]}}, {fields: {apikey: 0}})
}
]
}
用户在登录页面上订阅订阅“thisGroupPublic”,并在第一次作为登录用户访问组时获得角色“defaultUser”。但是我需要如何配置iron:router
重新订阅此订阅以显示内容而不仅仅是公共内容?
【问题讨论】:
-
要明确一点:用户在一条不会改变的路线上。当用户在这条路线上时,一些数据发生了变化,你想根据这个数据变化向路线发送一些东西来重新订阅一些东西,对吧?
标签: meteor iron-router