Set user field fails in plugin

NodeBB Plugins
  • Hello,

    I created a plugin from a template that authenticates against an LDAP server, the code works fine but i also wanted to set some user fields if the user needs to be created. I looked up the code and it seems that i should be using : user.setUserField(uid, 'fullname', user.givenName + " " + user.sn); but this causes the whole plugin to error. User is declared earlier in my code and works fine since the user is created if i remove the user.setUserField.

    My code is below:

    ldap.authenticate(username, password, function (err, user) {
      if (err) {
        next(new Error('[[error:invalid-username-or-password]]'));
      }
      else {
    
        User.getUidByEmail(user.mail, function (err, uid) {
          if (err) {
            return callback(err);
          }
    
          if (!uid) {
    
            User.create({
              username: user.sAMAccountName.toLowerCase(),
              email: user.mail
    
            }, function (err, uid) {
              if (err) {
                return callback(err);
              }
              
              user.setUserField(uid, 'fullname', user.givenName + " " + user.sn);
                       
              next(null, {
                uid: uid
              }, '[[success:authentication-successful]]');
            });
          } else {
            next(null, {
              uid: uid
            }, '[[success:authentication-successful]]');
          }
        });
    
      }
      ldap.close(function (err) {
        if (err) {
          console.log("LDAP closing error: %s", err);
        }
        else {
          console.log("Success in closing");
        }
      });
    });
    

    Am i doing something wrong?

    Thanks

  • @whitts said:

    user.setUserField(uid, 'fullname', user.givenName + " " + user.sn);

    Should be User.setUserField(uid, 'fullname', user.givenName + " " + user.sn);

  • Face Palm 😔

    Thanks


Suggested Topics