]> err.no Git - scalable-opengroupware.org/commitdiff
added ability to lookup some standard folders
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 14 Jul 2005 15:14:57 +0000 (15:14 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Thu, 14 Jul 2005 15:14:57 +0000 (15:14 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@758 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/SoObjects/Mailer/README
SOGo/SoObjects/SOGo/ChangeLog
SOGo/SoObjects/SOGo/SOGoFolder.h
SOGo/SoObjects/SOGo/SOGoUser.h
SOGo/SoObjects/SOGo/SOGoUser.m
SOGo/SoObjects/SOGo/Version

index bfccb5bb2575ca2851045abbcf7e0712aafbb1cd..440c0632ffb16b2feb40d9fb83b4ba0e6709b2da 100644 (file)
@@ -17,10 +17,12 @@ Class Hierarchy
       SOGoDraftObject
       SOGoDraftsFolder
       SOGoMailAccount
+        SOGoSharedMailAccount
       SOGoMailBodyPart
         SOGoImageMailBodyPart
         SOGoMessageMailBodyPart
       SOGoMailFolder
+        SOGoSharedInboxFolder
       SOGoMailObject
   SOGoMailConnectionEntry
   [EODataSource]
@@ -39,3 +41,8 @@ SOGoNoDraftDeleteAfterSend YES|NO - makes the draft's -delete method a NOOP
 SOGoSpecialFoldersInRoot   YES|NO - do special folders live under INBOX?
   - corresponds to the Cyrus setting: "altnamespace: yes"
 SOGoEnableSieveFolder      YES|NO - should the Sieve folder be visible?
+
+SOGoSharedFolderName       IMAP4-Name
+  - corresponds to the Cyrus setting: sharedprefix
+SOGoOtherUsersFolderName   IMAP4-Name
+  - corresponds to the Cyrus setting: userprefix
index e992cfe4809b121f9d1cc13ec4a2ec9789137488..123af1e1c8a4e34f846475c1e84d8da43ba676fc 100644 (file)
@@ -1,5 +1,8 @@
 2005-07-14  Helge Hess  <helge.hess@opengroupware.org>
 
+       * SOGoUser.m: added -homeFolderInContext: and
+         -schedulingCalendarInContext: methods (v0.9.59)
+
        * moved in SOGoUser and SOGoAuthenticator from Main (v0.9.58)
 
 2005-07-14  Marcus Mueller  <znek@mulle-kybernetik.com>
index f64d8e11cfde6b7516ad6d0fdfa37b0464c3e383..3e79b2b668509a573d3c10b7d19dcceedbd893ac 100644 (file)
@@ -32,6 +32,9 @@
   
   A common superclass for folders stored in GCS. Already deals with all GCS
   folder specific things.
+  
+  Important: folders should NOT retain the context! Otherwise you might get
+             cyclic references.
 */
 
 @interface SOGoFolder : SOGoObject
index e457247911a45166f6e8ae2f851a25c1781d93d9..9695e736e6bdd1dc3590eeee2e02054043b188cc 100644 (file)
 
 - (NSUserDefaults *)userDefaults;
 
+/* folders */
+
+- (id)schedulingCalendarInContext:(id)_ctx;
+
 @end
 
 #endif /* __SOGoUser_H__ */
index 0eee0aef4e45cd52f4dced4659fda520153415ff..463f26eeee45c56484a7cb7d30246fb20999b924 100644 (file)
   return self->userDefaults;
 }
 
+/* folders */
+
+- (id)homeFolderInContext:(id)_ctx {
+  /* Note: watch out for cyclic references */
+  // TODO: maybe we should add an [activeUser reset] method to SOPE
+  id folder;
+  
+  if ((folder = [_ctx objectForKey:@"ActiveUserHomeFolder"]) != nil)
+    return [folder isNotNull] ? folder : nil;
+  
+  folder = [[WOApplication application] lookupName:[self login]
+                                       inContext:_ctx acquire:NO];
+  if ([folder isKindOfClass:[NSException class]])
+    return folder;
+  
+  [_ctx setObject:folder ? folder : [NSNull null] 
+       forKey:@"ActiveUserHomeFolder"];
+  return folder;
+}
+
+- (id)schedulingCalendarInContext:(id)_ctx {
+  /* Note: watch out for cyclic references */
+  id folder;
+  
+  if ((folder = [_ctx objectForKey:@"ActiveUserCalendar"]) != nil)
+    return [folder isNotNull] ? folder : nil;
+
+  folder = [self homeFolderInContext:_ctx];
+  if ([folder isKindOfClass:[NSException class]])
+    return folder;
+  
+  folder = [folder lookupName:@"Calendar" inContext:_ctx acquire:NO];
+  if ([folder isKindOfClass:[NSException class]])
+    return folder;
+  
+  [_ctx setObject:folder ? folder : [NSNull null] 
+       forKey:@"ActiveUserCalendar"];
+  return folder;
+}
+
 @end /* SOGoUser */
index 82e7cdefd1d827d6e258d8032a767a29fd484c7b..8fefbc540ab7dc74029744d36b957839363d8f25 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=58
+SUBMINOR_VERSION:=59
 
 # v0.9.50 requires libGDLContentStore v4.5.30
 # v0.9.34 requires libGDLContentStore v4.5.26