我正在构建管理区域。我认为让多个管理员用户都可以访问相同的数据会很有用。我正在使用此roles package。
我使用autoform生成表单,因此当以“AdminA”身份登录时,此用户在表单中输入值并提交,然后将记录存储在AdminA的帐户下。 AdminB然后登录但没有看到表单上的值,因为该用户无权访问AdminA的帐户。我需要一种告诉autoform更新一条记录的方法。
以下代码是我想要实现的。任何人都可以建议我需要做些什么才能让它发挥作用?我看过autoform docs,我不太确定。
表单输入框在渲染时看起来有点像这样:
<input type="text" name="VehiclePrice" value="10000" />
<input type="hidden" name="_id" value="LEXANiNZtunFPfBea">
模板:
<template name="VehiclePrice">
{{#if submitted}}
{{> quickForm collection="VehiclePrice" omitFields="createdBy" doc=editingDoc id="VehiclePrice" type="update"}}
{{else}}
{{> quickForm collection="VehiclePrice" omitFields="createdBy" id="VehiclePrice" type="insert"}}
{{/if}}
</template>
助手:
Template.VehiclePrice.helpers({
VehiclePrices: function () {
return VehiclePrice.find().map(function (c) {
return {price: c.price, _id: c._id};
});
}
});
关系将是许多管理员用户与一个记录(*:1)
有什么想法吗?
答案 0 :(得分:1)
通过发布车辆集合,您可以以编程方式确定谁有权访问数据,以及发布的数据集。看一下Meteor发布文档(http://docs.meteor.com/#meteor_publish)。
设置集合后,您可以使用以下内容确定通过publish命令发布的数据集:
Meteor.publish("vehicleInfo", function () {
if ( this.role == "admin" )
return Vehicle.find();
else
return Vehicle.find({some subset of the data, or none at all (false)});
});
答案 1 :(得分:0)
事实证明,这是我的一位助手的问题。它限制了用户的数据,我对此表示赞赏并且工作正常。