Added isDomainDefined
To check whether a domain is supported by our defined sources
This commit is contained in:
parent
9d3f3c619d
commit
bf4a581d0f
|
@ -41,6 +41,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#import "SOGoSystemDefaults.h"
|
#import "SOGoSystemDefaults.h"
|
||||||
|
#import "SOGoUserManager.h"
|
||||||
|
|
||||||
@implementation SOGoSession
|
@implementation SOGoSession
|
||||||
|
|
||||||
|
@ -262,7 +263,7 @@
|
||||||
// The domain is probably appended to the username;
|
// The domain is probably appended to the username;
|
||||||
// make sure it is defined as a domain in the configuration.
|
// make sure it is defined as a domain in the configuration.
|
||||||
*theDomain = [*theLogin substringFromIndex: (r.location + r.length)];
|
*theDomain = [*theLogin substringFromIndex: (r.location + r.length)];
|
||||||
if (![[sd domainIds] containsObject: *theDomain])
|
if (![[SOGoUserManager sharedUserManager] isDomainDefined: *theDomain])
|
||||||
*theDomain = nil;
|
*theDomain = nil;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,7 +165,7 @@
|
||||||
// The domain is probably appended to the username;
|
// The domain is probably appended to the username;
|
||||||
// make sure it is defined as a domain in the configuration.
|
// make sure it is defined as a domain in the configuration.
|
||||||
domain = [newLogin substringFromIndex: (r.location + r.length)];
|
domain = [newLogin substringFromIndex: (r.location + r.length)];
|
||||||
if ([[sd domainIds] containsObject: domain] &&
|
if ([[SOGoUserManager sharedUserManager] isDomainDefined: domain] &&
|
||||||
![sd enableDomainBasedUID])
|
![sd enableDomainBasedUID])
|
||||||
newLogin = [newLogin substringToIndex: r.location];
|
newLogin = [newLogin substringToIndex: r.location];
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
- (NSArray *) sourceIDsInDomain: (NSString *) domain;
|
- (NSArray *) sourceIDsInDomain: (NSString *) domain;
|
||||||
- (NSArray *) authenticationSourceIDsInDomain: (NSString *) domain;
|
- (NSArray *) authenticationSourceIDsInDomain: (NSString *) domain;
|
||||||
- (NSArray *) addressBookSourceIDsInDomain: (NSString *) domain;
|
- (NSArray *) addressBookSourceIDsInDomain: (NSString *) domain;
|
||||||
|
- (BOOL) isDomainDefined: (NSString *) domain;
|
||||||
|
|
||||||
- (NSObject <SOGoSource> *) sourceWithID: (NSString *) sourceID;
|
- (NSObject <SOGoSource> *) sourceWithID: (NSString *) sourceID;
|
||||||
- (NSDictionary *) metadataForSourceID: (NSString *) sourceID;
|
- (NSDictionary *) metadataForSourceID: (NSString *) sourceID;
|
||||||
|
|
|
@ -305,6 +305,35 @@ static Class NSNullK;
|
||||||
return sourceIDs;
|
return sourceIDs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL) isDomainDefined: (NSString *) domain
|
||||||
|
{
|
||||||
|
NSEnumerator *allIDs;
|
||||||
|
NSArray *ids;
|
||||||
|
NSString *currentID, *sourceDomain;
|
||||||
|
SOGoSystemDefaults *sd;
|
||||||
|
|
||||||
|
if (!domain) return NO;
|
||||||
|
|
||||||
|
ids = [_sources allKeys];
|
||||||
|
if ([ids containsObject: domain])
|
||||||
|
// FIXME check SOGoMailDomain?
|
||||||
|
// Now source id is being considered as the domain
|
||||||
|
return YES;
|
||||||
|
|
||||||
|
sd = [SOGoSystemDefaults sharedSystemDefaults];
|
||||||
|
if ([sd enableDomainBasedUID])
|
||||||
|
{
|
||||||
|
allIDs = [ids objectEnumerator];
|
||||||
|
while ((currentID = [allIDs nextObject]))
|
||||||
|
{
|
||||||
|
sourceDomain = [[_sources objectForKey: currentID] domain];
|
||||||
|
if (!sourceDomain) // source that can identify any domain
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
- (NSString *) displayNameForSourceWithID: (NSString *) sourceID
|
- (NSString *) displayNameForSourceWithID: (NSString *) sourceID
|
||||||
{
|
{
|
||||||
NSDictionary *metadata;
|
NSDictionary *metadata;
|
||||||
|
@ -932,7 +961,7 @@ static Class NSNullK;
|
||||||
// The domain is probably appended to the username;
|
// The domain is probably appended to the username;
|
||||||
// make sure it is a defined domain in the configuration.
|
// make sure it is a defined domain in the configuration.
|
||||||
domain = [uid substringFromIndex: (r.location + r.length)];
|
domain = [uid substringFromIndex: (r.location + r.length)];
|
||||||
if ([[sd domainIds] containsObject: domain])
|
if ([self isDomainDefined: domain])
|
||||||
username = [uid substringToIndex: r.location];
|
username = [uid substringToIndex: r.location];
|
||||||
else
|
else
|
||||||
domain = nil;
|
domain = nil;
|
||||||
|
|
Loading…
Reference in a new issue