-1
我希望沒有用戶能夠創建具有超級管理員角色的用戶,我想要啓動時由服務器創建的唯一超級管理員。如何創建一個執行此操作的Accounts.validateNewUser()函數?如何執行用戶驗證除了服務器啓動流星?
更一般地說,我希望所有新用戶都以某種方式進行驗證,除了在服務器啓動期間創建的用戶。我該怎麼做呢?
謝謝!
我希望沒有用戶能夠創建具有超級管理員角色的用戶,我想要啓動時由服務器創建的唯一超級管理員。如何創建一個執行此操作的Accounts.validateNewUser()函數?如何執行用戶驗證除了服務器啓動流星?
更一般地說,我希望所有新用戶都以某種方式進行驗證,除了在服務器啓動期間創建的用戶。我該怎麼做呢?
謝謝!
服務器啓動時,創建新的超級管理員用戶並確保該用戶在其文檔中具有唯一密鑰。例如: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鍵否認規則。
如何在'''validateNewUser()'''觸發之前添加此用戶的密鑰? '''Accounts.createUser()'''http://docs.meteor.com/#/full/accounts_createuser 無處可添加此,除了公開的配置文件 –
假設您正在創建新的superAdmin用戶服務器,修改該用戶文檔*後,將其保存爲從服務器代碼插入新密鑰。我修改了我的答案中的代碼,爲您在啓動時創建的第一個用戶創建例外。 –