2016-06-05 8 views
0
ist

Ist es möglich, dies ein wenig kürzer/einfacher zu machen?Auf vorhandenes Objektelement prüfen oder: Wie überprüft man, ob der Benutzer in mindestens einer Gruppe der Gruppe

Ich verwende alanning:roles mit Gruppen. Jetzt muss ich überprüfen, ob ein Benutzer angemeldet ist und der Benutzer in der Gruppeadmin oder editor ist.

Dies ist, was ich tue (wie isInRole prüft für die Rolle, nicht für die Gruppe).

const loggedInUser = Meteor.user(); 
if (!loggedInUser || !loggedInUser.roles.hasOwnProperty('admin') || !loggedInUser.roles.hasOwnProperty('editor')) 
    throw new Meteor.Error(403, "Access denied", "You don't have access"); 

Antwort

0

Vielleicht so:

if (!loggedInUser || _.intersection(loggedInUser.roles, ["admin", "editor"]).length > 0) 

Aber ich würde die integrierten Funktionen von Roles für Rollenmanagement verwenden:

if (Roles.getRolesForUser(Meteor.userId()).some(x => _.contains(["admin", "editor"], x)))