(feat) baseDN now accept dynamic domain values (fixes #3685)

pull/249/head
Ludovic Marcotte 2019-02-04 07:37:56 -05:00
parent ceaa122a7d
commit d9943e559f
4 changed files with 366 additions and 351 deletions

View File

@ -972,7 +972,11 @@ a replacement for the hostname part in the URI provided by the
_SOGoSieveServer_ parameter. _SOGoSieveServer_ parameter.
|baseDN |baseDN
|The base DN of your user entries. |The base DN of your user entries. You can use `%d` in this value if you
want the base DN to be built dynamically from the user's domain during
the login process. If you use that, you might always enable bindAsCurrentUser.
For example: `baseDN = "ou=%d,ou=domains,dc=example,dc=com";`
|KindFieldName (optional) |KindFieldName (optional)
|If set, SOGo will try to determine if the value of the field |If set, SOGo will try to determine if the value of the field

1
NEWS
View File

@ -3,6 +3,7 @@
Enhancements Enhancements
- [web] create card from sender or recipient address (#3002, #4610) - [web] create card from sender or recipient address (#3002, #4610)
- [core] baseDN now accept dynamic domain values (#3685)
Bug fixes Bug fixes
- [web] fixed all-day event dates with different timezone - [web] fixed all-day event dates with different timezone

View File

@ -1,6 +1,6 @@
/* LDAPSource.h - this file is part of SOGo /* LDAPSource.h - this file is part of SOGo
* *
* Copyright (C) 2007-2015 Inverse inc. * Copyright (C) 2007-2019 Inverse inc.
* *
* This file is free software; you can redistribute it and/or modify * This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -21,7 +21,6 @@
#ifndef LDAPSOURCE_H #ifndef LDAPSOURCE_H
#define LDAPSOURCE_H #define LDAPSOURCE_H
#include "SOGoSource.h" #include "SOGoSource.h"
@class LDAPSourceSchema; @class LDAPSourceSchema;
@ -33,61 +32,61 @@
@interface LDAPSource : NSObject <SOGoDNSource> @interface LDAPSource : NSObject <SOGoDNSource>
{ {
int queryLimit; int _queryLimit;
int queryTimeout; int _queryTimeout;
NSString *sourceID; NSString *_sourceID;
NSString *displayName; NSString *_displayName;
NSString *bindDN; // The bindDN/password could be either the source's one NSString *_bindDN; // The bindDN/password could be either the source's one
NSString *password; // or the current user if _bindAsCurrentUser is set to YES NSString *_password; // or the current user if _bindAsCurrentUser is set to YES
NSString *sourceBindDN; // while sourceBindDN/sourceBindPassword always belong to the source NSString *_sourceBindDN; // while sourceBindDN/sourceBindPassword always belong to the source
NSString *sourceBindPassword; NSString *_sourceBindPassword;
NSString *hostname; NSString *_hostname;
unsigned int port; unsigned int _port;
NSString *encryption; NSString *_encryption;
NSString *_filter; NSString *_filter;
BOOL _bindAsCurrentUser; BOOL _bindAsCurrentUser;
NSString *_scope; NSString *_scope;
NSString *_userPasswordAlgorithm; NSString *_userPasswordAlgorithm;
NSString *baseDN; NSString *_baseDN;
LDAPSourceSchema *schema; LDAPSourceSchema *_schema;
NSString *IDField; // the first part of a user DN NSString *_IDField; // the first part of a user DN
NSString *CNField; NSString *_CNField;
NSString *UIDField; NSString *_UIDField;
NSArray *mailFields; NSArray *_mailFields;
NSArray *searchFields; NSArray *_searchFields;
NSString *IMAPHostField; NSString *_IMAPHostField;
NSString *IMAPLoginField; NSString *_IMAPLoginField;
NSString *SieveHostField; NSString *_SieveHostField;
NSArray *bindFields; NSArray *_bindFields;
BOOL listRequiresDot; BOOL _listRequiresDot;
NSString *domain; NSString *_domain;
NSString *contactInfoAttribute; NSString *_contactInfoAttribute;
NSDictionary *contactMapping; NSDictionary *_contactMapping;
NSArray *contactObjectClasses; NSArray *_contactObjectClasses;
NSArray *groupObjectClasses; NSArray *_groupObjectClasses;
NSDictionary *modulesConstraints; NSDictionary *_modulesConstraints;
BOOL passwordPolicy; BOOL _passwordPolicy;
BOOL updateSambaNTLMPasswords; BOOL _updateSambaNTLMPasswords;
/* resources handling */ /* resources handling */
NSString *kindField; NSString *_kindField;
NSString *multipleBookingsField; NSString *_multipleBookingsField;
NSString *MSExchangeHostname; NSString *_MSExchangeHostname;
/* user addressbooks */ /* user addressbooks */
NSString *abOU; NSString *_abOU;
/* ACL */ /* ACL */
NSArray *modifiers; NSArray *_modifiers;
} }
- (void) setBindDN: (NSString *) newBindDN - (void) setBindDN: (NSString *) newBindDN
@ -113,13 +112,13 @@ andMultipleBookingsField: (NSString *) newMultipleBookingsField;
/* This enable the convertion of a contact entry with inetOrgPerson and mozillaAbPerson /* This enable the convertion of a contact entry with inetOrgPerson and mozillaAbPerson
to and from an LDAP record */ to and from an LDAP record */
- (void) setContactMapping: (NSDictionary *) newMapping - (void) setContactMapping: (NSDictionary *) theMapping
andObjectClasses: (NSArray *) newObjectClasses; andObjectClasses: (NSArray *) theObjectClasses;
- (NGLdapEntry *) lookupGroupEntryByUID: (NSString *) theUID - (NGLdapEntry *) lookupGroupEntryByUID: (NSString *) theUID
inDomain: (NSString *) domain; inDomain: (NSString *) theDomain;
- (NGLdapEntry *) lookupGroupEntryByEmail: (NSString *) theEmail - (NGLdapEntry *) lookupGroupEntryByEmail: (NSString *) theEmail
inDomain: (NSString *) domain; inDomain: (NSString *) theDomain;
- (void) applyContactMappingToResult: (NSMutableDictionary *) ldifRecord; - (void) applyContactMappingToResult: (NSMutableDictionary *) ldifRecord;

File diff suppressed because it is too large Load Diff