2016-12-06 52 views
0

我很關心流星賬戶的靈活性。我想根據當前登錄用戶的特定屬性(內部Meteor.user.profile)將Meteor.users集合返回給客戶端。例如,具有HR位置的用戶只能返回正在其下工作的用戶。而在其下工作的員工將擁有employeeHR屬性。如何根據當前登錄用戶從Meteor.users集合中返回特定用戶?

現在我想從你們那裏知道我打算採取的方法是否可行?

有沒有更好的方法來達到我的目的?

UPDATE:

我用下面的代碼來測試,如果我可以檢索的authorityLevel的值,並且它被成功地打印到控制檯:

Session.set('checkAuthority', Meteor.user().profile.authorityLevel); 
console.log(Session.get('checkAuthority')); 

然後,我試圖返回用戶根據他們的authorityLevel,這裏是代碼:

if(!Meteor.user().profile.authorityLevel){ 
      return Meteor.users.find({}, { sort: {createdAt: -1}}); 
     } 
     if(Meteor.user().profile.authorityLevel === "HR") { 
      return Meteor.users.find({authorityLevel: "HRemployee"}, { sort: {createdAt: -1}}); 
     } 

它不起作用,我得到foll在控制檯中的錯誤

Exception in template helper: TypeError: Cannot read property 'profile' of null 
    at Object.employees 

我在做什麼錯在這裏?

注:

我得到同樣的錯誤,即使具有authorityLevel屬性

回答

0

流星賬戶有足夠的靈活性,用戶登錄時。

一種方法可以是使用alanning:roles包,它將允許您定義角色和組。

您可以定義組以反映組織(例如部門)。 HR用戶(如果他們具有管理角色)可以看到該組中的用戶。

+0

我想實現我認爲是更快的解決方案,而不是使用另一個軟件包。我更新了我的問題,如果您可以看看,請 –

0

您正在查看Meteor.user(),然後才能完全發佈給客戶。這樣做:

if(Meteor.user() && !Meteor.user().profile.authorityLevel) 

,以確保這一切都沒有嘗試讀取profile鍵之前。

如果有任何安慰,每個人都會在他們的Meteor學習曲線的某個點上遇到這個問題。

相關問題