2017-05-09 45 views
0

我正在使用alanning:角色,並將我的用戶成功地置於管理員組中,並保存在我的服務器主文件中。但是現在我試圖將Meteor.users.allow()添加到我的管理員中,以允許他們刪除其他用戶。我無法在代碼中找到正確位置的示例來說明這一點。我是否在啓動時將其放入服務器主機中?或在一個單獨的用戶集合中(我正在使用React)?在我的代碼中,我應該放置Meteor用戶方法並允許()權限?

我認爲這說明了我對流星的理解或反應的盲點,所以如果你覺得有啓發性,請幫助我:)謝謝!

回答

1

如果您使用的流星比1.3.0更新,您可以將您的掛鉤/允許/方法文件放置在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) 

現在,說實話,這是一個老項目,所以反應在這裏不考慮,但是這可能仍然是對你有幫助時你正在組織你的進口。顯然,你將需要一些用於你的客戶端和服務器的入口文件來導入所有必要的依賴關係。 從此,例如,在你的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; 
    } 
}); 

我更喜歡使用流星項目絕對文件路徑的進口,因爲那裏的根路徑解析爲您的項目的根。使它們更容易複製粘貼。

希望有所幫助。

+0

謝謝,這非常有幫助。我想我有點不清楚,如果我可以使用Meteor.users集合就像任何集合(在你的例子SomeCollection)。如果我命名集合用戶,它會自動引用Meteor.users,以便我可以做users.allow({remove ...})? – John

+0

我幾乎可以肯定你可以使用Meteor.users.allow({etc ...})。你應該能夠命名一個集合'用戶'。如果您的初始問題已解決,請將答案標記爲已回答。 –

相關問題