2016-07-07 4 views
0

Ich habe ein Modell erstellt, das Benutzer erweitert und überschreibt die create-Methode, weil ich zusätzliche Logik (in server/models/person.js) benötige. Ich erstelle die Benutzer ohne Probleme und registriert bereits zwei Rollen über die API ('Benutzer' und 'Admin' genannt). Ich muss die neuen Benutzer einer der Rollen ("Benutzer") zuweisen. Wie kann ich es tun?Loopback 3 Benutzer erstellen und eine Rolle zuweisen

Person.upsert(obj, function(err, u1) { 
    if (err != null) { 
    console.log('Error: ', err); 
    callback({code: 401, message: err}); 
    } else { 
    obj.createAccessToken(2629746000, function(err, token) { 
     if (err) { 
     callback(err, null); 
     } else { 
     obj.token = token; 
     callback(null, obj); 
     } 
    }); 
    } 
}); 

Dank

Antwort

0

ich einen Weg gefunden, habe ich die Beziehung zwischen Person und RoleMapping:

"relations": { 
"roles": { 
    "type": "hasMany", 
    "model": "RoleMapping", 
    "foreignKey": "principalId", 
    "options": { 
    "disableInclude": true 
    } 
} 

Jetzt kann ich das RoleMapping Modell durch die Beziehung nennen:

Person.upsert(obj, function(err, u1) { 
    if (err != null) { 
    console.log('Error: ', err); 
    callback({code: 401, message: err}); 
    } else { 
    obj.roles.create({principalType: obj.roles.ROLE, roleId: 'admin'}, 
     function() { 
     obj.createAccessToken(2629746000, function(err, token) { 
      if (err) { 
      callback(err, null); 
      } else { 
      obj.token = token; 
      callback(null, obj); 
      } 
     }); 
     }); 
    } 
}); 

Ist das ok?

0

Fetch Role Instanz und weisen Rolle zu Person wie folgt aus:

role.principals.create({ 
        principalType: RoleMapping.ACCOUNT, 
        principalId: person.id 
       }); 
Verwandte Themen