mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-06 17:05:10 +00:00
Monotone-Parent: 8e0e6424d6b615f0f0bced176a8cacc2ef6cb0dd
Monotone-Revision: e925d76ce1929b1801949335cf3b1290dc53eb6d Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-08-15T20:30:37 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -1,5 +1,19 @@
|
||||
2007-08-15 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* SoObjects/SOGo/SOGoUser.m ([-fullEmail]): removed method.
|
||||
([-primaryEmail]): removed method.
|
||||
([SOGoUser -primaryIMAP4AccountString]): removed method.
|
||||
([SOGoUser -mailAccounts]): new method that returns an array
|
||||
containing description dictionaries for all the user mail
|
||||
accounts. Each account also contain the user's identities for that
|
||||
account.
|
||||
([SOGoUser -allIdentities]): new utility method that returns all
|
||||
the user identities on all accounts.
|
||||
([SOGoUser -primaryIdentity]): new method return the first
|
||||
identity of the first account.
|
||||
|
||||
* SoObjects/Mailer/SOGoMailFolder.m ([SOGoMailFolder -httpURLForAdvisoryToUser:uid]):
|
||||
|
||||
* SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount
|
||||
-isInDraftsFolder]): returns NO.
|
||||
([-preferredIdentity]): removed method, replaced with -[SOGoUser
|
||||
|
||||
@@ -58,6 +58,7 @@ extern NSString *SOGoWeekStartFirstFullWeek;
|
||||
NSUserDefaults *userSettings;
|
||||
NSTimeZone *userTimeZone;
|
||||
SOGoDateFormatter *dateFormatter;
|
||||
NSMutableArray *mailAccounts;
|
||||
}
|
||||
|
||||
+ (SOGoUser *) userWithLogin: (NSString *) login
|
||||
@@ -67,11 +68,11 @@ extern NSString *SOGoWeekStartFirstFullWeek;
|
||||
|
||||
/* properties */
|
||||
|
||||
- (NSString *) fullEmail;
|
||||
// - (NSString *) fullEmail;
|
||||
|
||||
- (NSString *) primaryEmail;
|
||||
- (NSString *) systemEmail;
|
||||
- (NSArray *) allEmails;
|
||||
// - (NSString *) primaryEmail;
|
||||
// - (NSString *) systemEmail;
|
||||
// - (NSArray *) allEmails;
|
||||
|
||||
- (BOOL) hasEmail: (NSString *) email;
|
||||
|
||||
@@ -82,7 +83,7 @@ extern NSString *SOGoWeekStartFirstFullWeek;
|
||||
|
||||
/* shares and identities */
|
||||
|
||||
- (NSString *) primaryIMAP4AccountString;
|
||||
// - (NSString *) primaryIMAP4AccountString;
|
||||
|
||||
// - (NSString *) primaryIMAP4AccountString;
|
||||
// - (NSString *) primaryMailServer;
|
||||
@@ -99,6 +100,10 @@ extern NSString *SOGoWeekStartFirstFullWeek;
|
||||
- (NSTimeZone *) timeZone;
|
||||
- (NSTimeZone *) serverTimeZone;
|
||||
|
||||
- (NSArray *) mailAccounts;
|
||||
- (NSArray *) allIdentities;
|
||||
- (NSDictionary *) primaryIdentity;
|
||||
|
||||
/* folders */
|
||||
|
||||
- (id) homeFolderInContext: (id) _ctx;
|
||||
|
||||
+124
-19
@@ -23,6 +23,7 @@
|
||||
#import <Foundation/NSNull.h>
|
||||
#import <Foundation/NSTimeZone.h>
|
||||
#import <Foundation/NSUserDefaults.h>
|
||||
#import <Foundation/NSValue.h>
|
||||
#import <NGObjWeb/WOApplication.h>
|
||||
#import <NGObjWeb/SoObject.h>
|
||||
#import <NGExtensions/NSNull+misc.h>
|
||||
@@ -189,17 +190,25 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
|
||||
|
||||
/* properties */
|
||||
|
||||
- (NSString *) fullEmail
|
||||
{
|
||||
return [[LDAPUserManager sharedUserManager] getFullEmailForUID: login];
|
||||
}
|
||||
// - (NSString *) fullEmail
|
||||
// {
|
||||
// return [[LDAPUserManager sharedUserManager] getFullEmailForUID: login];
|
||||
// }
|
||||
|
||||
- (NSString *) primaryEmail
|
||||
// - (NSString *) primaryEmail
|
||||
// {
|
||||
// if (!allEmails)
|
||||
// [self _fetchAllEmails];
|
||||
|
||||
// return [allEmails objectAtIndex: 0];
|
||||
// }
|
||||
|
||||
- (NSArray *) allEmails
|
||||
{
|
||||
if (!allEmails)
|
||||
[self _fetchAllEmails];
|
||||
|
||||
return [allEmails objectAtIndex: 0];
|
||||
return allEmails;
|
||||
}
|
||||
|
||||
- (NSString *) systemEmail
|
||||
@@ -210,14 +219,6 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
|
||||
return [allEmails lastObject];
|
||||
}
|
||||
|
||||
- (NSArray *) allEmails
|
||||
{
|
||||
if (!allEmails)
|
||||
[self _fetchAllEmails];
|
||||
|
||||
return allEmails;
|
||||
}
|
||||
|
||||
- (BOOL) hasEmail: (NSString *) email
|
||||
{
|
||||
if (!allEmails)
|
||||
@@ -234,11 +235,6 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
|
||||
return cn;
|
||||
}
|
||||
|
||||
- (NSString *) primaryIMAP4AccountString
|
||||
{
|
||||
return [NSString stringWithFormat: @"%@@%@", login, fallbackIMAP4Server];
|
||||
}
|
||||
|
||||
// - (NSString *) primaryMailServer
|
||||
// {
|
||||
// return [[self userManager] getServerForUID: [self login]];
|
||||
@@ -347,6 +343,115 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek";
|
||||
return serverTimeZone;
|
||||
}
|
||||
|
||||
/* mail */
|
||||
- (NSArray *) mailAccounts
|
||||
{
|
||||
#warning should be implemented with the user defaults interfaces
|
||||
NSMutableDictionary *mailAccount, *identity;
|
||||
NSMutableArray *identities;
|
||||
NSString *name, *fullName;
|
||||
|
||||
if (!mailAccounts)
|
||||
{
|
||||
mailAccount = [NSMutableDictionary dictionary];
|
||||
name = [NSString stringWithFormat: @"%@@%@", login, fallbackIMAP4Server];
|
||||
[mailAccount setObject: login forKey: @"userName"];
|
||||
[mailAccount setObject: fallbackIMAP4Server forKey: @"serverName"];
|
||||
[mailAccount setObject: name forKey: @"name"];
|
||||
|
||||
identity = [NSMutableDictionary dictionary];
|
||||
fullName = [self cn];
|
||||
if (![fullName length])
|
||||
fullName = login;
|
||||
[identity setObject: fullName forKey: @"fullName"];
|
||||
[identity setObject: [self systemEmail] forKey: @"email"];
|
||||
[identity setObject: [NSNumber numberWithBool: YES] forKey: @"isDefault"];
|
||||
|
||||
identities = [NSMutableArray array];
|
||||
[identities addObject: identity];
|
||||
[mailAccount setObject: identities forKey: @"identities"];
|
||||
|
||||
mailAccounts = [NSMutableArray new];
|
||||
[mailAccounts addObject: mailAccount];
|
||||
}
|
||||
|
||||
return mailAccounts;
|
||||
}
|
||||
|
||||
/*
|
||||
@interface SOGoMailIdentity : NSObject
|
||||
{
|
||||
NSString *name;
|
||||
NSString *email;
|
||||
NSString *replyTo;
|
||||
NSString *organization;
|
||||
NSString *signature;
|
||||
NSString *vCard;
|
||||
NSString *sentFolderName;
|
||||
NSString *sentBCC;
|
||||
NSString *draftsFolderName;
|
||||
NSString *templatesFolderName;
|
||||
struct
|
||||
{
|
||||
int composeHTML:1;
|
||||
int reserved:31;
|
||||
} idFlags;
|
||||
}
|
||||
|
||||
- (void) setName: (NSString *) _value;
|
||||
- (NSString *) name;
|
||||
|
||||
- (void) setEmail: (NSString *) _value;
|
||||
- (NSString *) email;
|
||||
|
||||
- (void) setReplyTo: (NSString *) _value;
|
||||
- (NSString *) replyTo;
|
||||
|
||||
- (void) setOrganization: (NSString *) _value;
|
||||
- (NSString *) organization;
|
||||
|
||||
- (void) setSignature: (NSString *) _value;
|
||||
- (NSString *) signature;
|
||||
- (BOOL) hasSignature;
|
||||
|
||||
- (void) setVCard: (NSString *) _value;
|
||||
- (NSString *) vCard;
|
||||
- (BOOL) hasVCard;
|
||||
|
||||
- (void) setSentFolderName: (NSString *) _value;
|
||||
- (NSString *) sentFolderName;
|
||||
|
||||
- (void) setSentBCC: (NSString *) _value;
|
||||
- (NSString *) sentBCC;
|
||||
|
||||
- (void) setDraftsFolderName: (NSString *) _value;
|
||||
- (NSString *) draftsFolderName;
|
||||
|
||||
- (void) setTemplatesFolderName: (NSString *) _value;
|
||||
- (NSString *) templatesFolderName;
|
||||
|
||||
@end */
|
||||
|
||||
- (NSArray *) allIdentities
|
||||
{
|
||||
NSArray *identities;
|
||||
|
||||
[self mailAccounts];
|
||||
identities = [mailAccounts objectsForKey: @"identities"];
|
||||
|
||||
return [identities flattenedArray];
|
||||
}
|
||||
|
||||
- (NSDictionary *) primaryIdentity
|
||||
{
|
||||
NSDictionary *defaultAccount;
|
||||
|
||||
[self mailAccounts];
|
||||
defaultAccount = [mailAccounts objectAtIndex: 0];
|
||||
|
||||
return [[defaultAccount objectForKey: @"identities"] objectAtIndex: 0];
|
||||
}
|
||||
|
||||
/* folders */
|
||||
|
||||
// TODO: those methods should check whether the traversal stack in the context
|
||||
|
||||
Reference in New Issue
Block a user