环回挂钩:server / boot / userHook.js查找角色,并为创建的用户设置RoleMapping。未定义角色实例

时间:2019-06-03 16:40:05

标签: find undefined hook boot loopback

我正在尝试创建一个远程挂钩,该挂钩查找与发布新用户时给定的属性“ type”同名的Role。问题是,我似乎无法访问模型。当我在Roles上使用find()时,它不会抛出错误,但是所有属性都是未定义的。对于其他模型(例如用户)也是如此。

我尝试使用Model.on('attached'),就像在model.js中需要它一样。但这是服务器/引导/ ..,因此可以访问模型。

module.exports = function(app) {
const User = app.models.User;
var Role = app.models.Role;
var RoleMapping = app.models.RoleMapping;


User.observe('after save', function setRoleMapping(ctx, next) {

    if (ctx.instance) {
      if(ctx.isNewInstance) {

        // look up role based on type
        //
        Role.find({where:{name: ctx.instance.type}}, function(err, role) {
          if (err) {return console.log(err);}
            console.log("Role name: " + role.name) //-> undefined
          RoleMapping.create({
            principalType: "USER",
            principalId: ctx.instance.id,
            roleId: role.id //-> undefined
          }, function(err, roleMapping) {

            if (err) {return console.log(err);}

            console.log('User assigned RoleID ' + role.id + ' (' + ctx.instance.type + ')'); //-> User assigned RoleID undefined (admin)

          })

        });
      }
    }
    next();
  });

};

预期的最后一个console.log()->用户分配的RoleID 5cd978a1130e7142bef28042(管理员)

实际结果->用户分配的RoleID未定义(管理员)

0 个答案:

没有答案