瀏覽代碼

- [LDAP: Check if email attribute is an array, that has many email addresses](https://github.com/wekan/wekan/pull/2519).

Thanks to tdemaret and xet7 !
Lauri Ojansivu 6 年之前
父節點
當前提交
31e801cc39
共有 1 個文件被更改,包括 11 次插入1 次删除
  1. 11 1
      models/users.js

+ 11 - 1
models/users.js

@@ -530,6 +530,9 @@ Meteor.methods({
     Meteor.user().setShowCardsCountAt(limit);
   },
   setEmail(email, userId) {
+    if (Array.isArray(email)) {
+      email = email.shift();
+    }
     check(email, String);
     const existingUser = Users.findOne(
       { 'emails.address': email },
@@ -552,6 +555,9 @@ Meteor.methods({
   },
   setUsernameAndEmail(username, email, userId) {
     check(username, String);
+    if (Array.isArray(email)) {
+      email = email.shift();
+    }
     check(email, String);
     check(userId, String);
     Meteor.call('setUsername', username, userId);
@@ -648,7 +654,11 @@ if (Meteor.isServer) {
     }
 
     if (user.services.oidc) {
-      const email = user.services.oidc.email.toLowerCase();
+      let email = user.services.oidc.email;
+      if (Array.isArray(email)) {
+        email = email.shift();
+      }
+      email = email.toLowerCase();
       user.username = user.services.oidc.username;
       user.emails = [{ address: email, verified: true }];
       const initials = user.services.oidc.fullname