我的代码中应该放置我的Meteor用户方法和allow()权限?

时间:2017-05-09 14:36:25

标签: reactjs meteor alanning-roles

我正在使用alanning:roles并将我的用户成功放入我的服务器 - 主文件中的管理员组。但是现在我正在尝试将Meteor.users.allow()添加到我的管理员,以便允许他们删除其他用户。我无法在我的代码中找到正确位置的示例来放置它。我是否在启动时将它放在服务器主服务器中?或者在一个单独的用户集合中(我正在使用React)?

我认为这说明了我对流星的理解中的盲点或反应所以如果你感觉有启发性,请帮助我:)谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用的Meteor比1.3.0更新,您可以将hooks / allows / methods文件放在server子目录下的任何位置,只要import(如ES6中那样)模块导入)他们。将它们逻辑分离是有帮助的。 这是我们在项目中使用的示例目录结构:

public/ (static files, assets)
settings/ (to be loaded as command-line args for different environments)
test/
imports/
  client/
    startup/
    components/
    views/
  server/
    startup/
    allows/
    hooks/
    methods/
    publications/
  both/
    utils/
    collections/ (collections are here, because they're shared)

现在,说实话,这是一个较旧的项目,所以在这里不考虑React,但是当你组织你的导入时,这仍然对你有帮助。显然,您将需要为客户端和服务器输入几个导入所有必需依赖项的条目文件。 从那时起,例如,在您的imports/server/allows/<collection_name>.js文件中,您可以将您的允许内容设置为:

import { SomeCollection } from '/imports/both/collections/someCollection.js';

SomeCollection.allow({
  insert: function () {
    return true;
  },
  update: function () {
    return true;
  },
  remove: function () {
    return true;
  }
});

我更喜欢在Meteor项目中使用绝对文件路径导入,因为根路径会解析为项目的根目录。使它们更容易复制粘贴。

希望有所帮助。