2015-08-22 40 views
-1

我希望沒有用戶能夠創建具有超級管理員角色的用戶,我想要啓動時由服務器創建的唯一超級管理員。如何創建一個執行此操作的Accounts.validateNewUser()函數?如何執行用戶驗證除了服務器啓動流星?

更一般地說,我希望所有新用戶都以某種方式進行驗證,除了在服務器啓動期間創建的用戶。我該怎麼做呢?

謝謝!

回答

0

服務器啓動時,創建新的超級管理員用戶並確保該用戶在其文檔中具有唯一密鑰。例如:isSuperAdmin: true。在您的Accounts.validateNewUser()代碼(運行在服務器上):

if (Meteor.user().isSuperAdmin || Meteor.users.find().count() <= 1) return true; // only allow super admin to create users with exception for very first user 
else throw new Meteor.error(403,'Forbidden'); 

您還需要對任何試圖設置了用戶的isSuperAdmin否認規則。

+0

如何在'''validateNewUser()'''觸發之前添加此用戶的密鑰? '''Accounts.createUser()'''http://docs.meteor.com/#/full/accounts_createuser 無處可添加此,除了公開的配置文件 –

+0

假設您正在創建新的superAdmin用戶服務器,修改該用戶文檔*後,將其保存爲從服務器代碼插入新密鑰。我修改了我的答案中的代碼,爲您在啓動時創建的第一個用戶創建例外。 –

相關問題