Creating a default admin user(创建默认 Admin)

Loopback 不会默认创建管理员账号, 然而应用程序,你可以自定义一个,
像一个 loopback-example-access-control 里的 server/boot/sample-models.js.

步骤:

  1. 创建多个用户,连同其他模型的实例
  2. 定义模型之间的关系。
  3. 定义管理员角色
  4. 添加一个角色映射到指定用户的管理角色

因为在 server/boot, 当应用程序启动时,它就会被执行, 所以admin用户会一直存在,一旦应用程序初始化.

  1. /**
  2. * 创建多个用户,连同其他模型的实例
  3. */
  4. User.create([
  5. {username: 'John', email: 'john@doe.com', password: 'opensesame'},
  6. {username: 'Jane', email: 'jane@doe.com', password: 'opensesame'},
  7. {username: 'Bob', email: 'bob@projects.com', password: 'opensesame'}
  8. ], function(err, users) {
  9. if (err) return debug('%j', err);
  10. ...
  11. // 创建项目,指定项目业主和项目团队成员
  12. ...
  13. /**
  14. * 定义管理员角色
  15. */
  16. Role.create({
  17. name: 'admin'
  18. }, function(err, role) {
  19. if (err) return debug(err);
  20. debug(role);
  21. /**
  22. * 添加一个角色映射到指定用户的管理角色
  23. */
  24. role.principals.create({
  25. principalType: RoleMapping.USER,
  26. principalId: users[2].id
  27. }, function(err, principal) {
  28. if (err) return debug(err);
  29. debug(principal);
  30. });
  31. });
  32. });
  33. };

定义模型之间的关系。 /common/models/project.json

  1. {
  2. "accessType": "READ",
  3. "principalType": "ROLE",
  4. "principalId": "admin",
  5. "permission": "ALLOW",
  6. "property": "find"
  7. },