diff --git a/src/ldap.js b/src/ldap.js index 4d11e3daf..a881e572a 100644 --- a/src/ldap.js +++ b/src/ldap.js @@ -305,13 +305,14 @@ function mailAliasSearch(req, res, next) { // https://wiki.debian.org/LDAP/MigrationTools/Examples // https://docs.oracle.com/cd/E19455-01/806-5580/6jej518pp/index.html + // member is fully qualified - https://docs.oracle.com/cd/E19957-01/816-6082-10/chap4.doc.html#43314 var obj = { dn: req.dn.toString(), attributes: { objectclass: ['nisMailAlias'], objectcategory: 'nisMailAlias', - cn: alias.name, - rfc822MailMember: alias.aliasTarget + cn: `${alias.name}@${alias.domain}`, + rfc822MailMember: `${alias.aliasTarget}@${alias.domain}` } }; diff --git a/src/test/ldap-test.js b/src/test/ldap-test.js index 96daad05c..d21118769 100644 --- a/src/test/ldap-test.js +++ b/src/test/ldap-test.js @@ -765,8 +765,8 @@ describe('Ldap', function () { ldapSearch('cn=' + USER_0_ALIAS + '@example.com,ou=mailaliases,dc=cloudron', 'objectclass=nismailalias', function (error, entries) { if (error) return done(error); expect(entries.length).to.equal(1); - expect(entries[0].cn).to.equal('asterix'); - expect(entries[0].rfc822MailMember).to.equal(USER_0.username.toLowerCase()); + expect(entries[0].cn).to.equal('asterix@example.com'); + expect(entries[0].rfc822MailMember).to.equal(USER_0.username.toLowerCase() + '@example.com'); done(); }); }); @@ -791,8 +791,8 @@ describe('Ldap', function () { ldapSearch('cn=' + USER_0_ALIAS + '@example.com,ou=mailaliases,dc=cloudron', 'objectclass=nismailalias', function (error, entries) { if (error) return done(error); expect(entries.length).to.equal(1); - expect(entries[0].cn).to.equal('asterix'); - expect(entries[0].rfc822MailMember).to.equal(USER_0.username.toLowerCase()); + expect(entries[0].cn).to.equal('asterix@example.com'); + expect(entries[0].rfc822MailMember).to.equal(USER_0.username.toLowerCase() + '@example.com'); done(); }); });