From ceab91527be949266f59138d0100f10f3bc5a125 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 24 Jan 2008 17:11:29 +0000 Subject: [PATCH] Monotone-Parent: ff201d8484b08d9e29b03401dc626b86400b923a Monotone-Revision: 46d42d040199ad6d8849025055fba6fdf50d9455 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-01-24T17:11:29 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 7 +++++++ SoObjects/SOGo/SOGoUser.m | 15 ++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2c004999f..08e209834 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2008-01-24 Wolfgang Sourdeau + * SoObjects/SOGo/SOGoUser.m ([SOGoUser + +userWithLogin:newLoginroles:newRoles]): test if the user is well + initialized before registering it with the SOGo cache. + ([SOGoUser -initWithLogin:newLoginroles:newRoles]): returns a user + only if the realUID has been found, otherwise we dealloc self and + return nil. + * SoObjects/Appointments/SOGoAppointmentFolder.m: if c_cycleinfo is an NSNull instance, we consider it to be empty and return automatically with an error message in the log. diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index fe0aa2a6a..b0f1c6b71 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -133,8 +133,11 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek"; if (!user) { user = [[self alloc] initWithLogin: newLogin roles: newRoles]; - [user autorelease]; - [cache registerUser: user]; + if (user) + { + [user autorelease]; + [cache registerUser: user]; + } } [user setPrimaryRoles: newRoles]; @@ -173,7 +176,13 @@ NSString *SOGoWeekStartFirstFullWeek = @"FirstFullWeek"; realUID = [[um contactInfosForUserWithUIDorEmail: newLogin] objectForKey: @"c_uid"]; } - self = [super initWithLogin: realUID roles: newRoles]; + if (realUID) + self = [super initWithLogin: realUID roles: newRoles]; + else + { + [self release]; + self = nil; + } return self; }