]> err.no Git - scalable-opengroupware.org/commitdiff
added SOGoUser object
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 12 Jul 2005 09:20:10 +0000 (09:20 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 12 Jul 2005 09:20:10 +0000 (09:20 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@713 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/Main/ChangeLog
SOGo/Main/GNUmakefile
SOGo/Main/SOGoAuthenticator.h
SOGo/Main/SOGoAuthenticator.m
SOGo/Main/SOGoUser.h [new file with mode: 0644]
SOGo/Main/SOGoUser.m [new file with mode: 0644]
SOGo/Main/Version
SOGo/UI/Templates/UIxPageFrame.wox

index e11f6fd3fd7e4ee8a78b6572a2c23c6cca553733..4c5e846ffdd18ac407630ef6c3f936f148cbb7d4 100644 (file)
@@ -1,3 +1,13 @@
+2005-07-12  Helge Hess  <helge.hess@opengroupware.org>
+       
+       * v0.9.30
+       
+       * SOGoAuthenticator.m: create SOGoUser objects
+       
+       * added 'SOGoUser' object/class as a subclass of SoUser, using this
+         object various Agenor properties like cn or email can be determined
+         (will use the AgenorUserManager to retrieve such)
+
 2005-07-08  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * README: updated for new default 'SOGoAllowsUnrestrictedAccess'
index 9a8d7e92587c23788f9dfc2e33db856012c56802..e213405555f9eb922147d86c2c150693168bb03b 100644 (file)
@@ -18,6 +18,7 @@ $(SOGOD)_OBJC_FILES += \
        SOGo.m                  \
        SOGoProductLoader.m     \
        SOGoAuthenticator.m     \
+       SOGoUser.m              \
 
 # product
 
index 31e7afcba32534d1d16967ce0967a136fe2d9867..f49e7c56294c0a7f158f8c62113953cea1197301 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2004 SKYRIX Software AG
+  Copyright (C) 2004-2005 SKYRIX Software AG
 
   This file is part of OpenGroupware.org.
 
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #ifndef __Main_SOGoAuthenticator_H__
 #define __Main_SOGoAuthenticator_H__
index e40cec1a817f54e49ea29a72d057b20074290e76..bb1b7a2a9bbe33f40a588b95e26f69cab7e7e6f4 100644 (file)
@@ -20,6 +20,7 @@
 */
 
 #include "SOGoAuthenticator.h"
+#include "SOGoUser.h"
 #include "common.h"
 
 @implementation SOGoAuthenticator
@@ -42,4 +43,27 @@ static SOGoAuthenticator *auth = nil; // THREAD
   return YES;
 }
 
+/* create SOGoUser */
+
+- (SoUser *)userInContext:(WOContext *)_ctx {
+  static SoUser *anonymous = nil;
+  NSString  *login;
+  NSArray   *uroles;
+  
+  if (anonymous == nil) {
+    NSArray *ar = [NSArray arrayWithObject:SoRole_Anonymous];
+    anonymous = [[SOGoUser alloc] initWithLogin:@"anonymous" roles:ar];
+  }
+  
+  if ((login = [self checkCredentialsInContext:_ctx]) == nil)
+    /* some error (otherwise result would have been anonymous */
+    return nil;
+  
+  if ([login isEqualToString:@"anonymous"])
+    return anonymous;
+  
+  uroles = [self rolesForLogin:login];
+  return [[[SOGoUser alloc] initWithLogin:login roles:uroles] autorelease];
+}
+
 @end /* SOGoAuthenticator */
diff --git a/SOGo/Main/SOGoUser.h b/SOGo/Main/SOGoUser.h
new file mode 100644 (file)
index 0000000..743ff54
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+  Copyright (C) 2005 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+
+#ifndef __SOGoUser_H__
+#define __SOGoUser_H__
+
+#include <NGObjWeb/SoUser.h>
+
+/*
+  SOGoUser
+
+  This adds some additional SOGo properties to the SoUser object. The
+  properties are (currently) looked up using the AgenorUserManager.
+*/
+
+@class NSString, NSURL;
+
+@interface SOGoUser : SoUser
+{
+  NSString *cn;
+  NSString *email;
+}
+
+/* properties */
+
+- (NSString *)email;
+- (NSString *)cn;
+- (NSString *)primaryIMAP4AccountString;
+- (NSString *)primaryMailServer;
+- (NSArray *)additionalIMAP4AccountStrings;
+- (NSArray *)additionalEMailAddresses;
+- (NSURL *)freeBusyURL;
+
+@end
+
+#endif /* __SOGoUser_H__ */
diff --git a/SOGo/Main/SOGoUser.m b/SOGo/Main/SOGoUser.m
new file mode 100644 (file)
index 0000000..cc13109
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+  Copyright (C) 2005 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+
+#include "SOGoUser.h"
+#include <SOGo/AgenorUserManager.h>
+#include "common.h"
+
+@implementation SOGoUser
+
+- (void)dealloc {
+  [self->cn    release];
+  [self->email release];
+  [super dealloc];
+}
+
+/* internals */
+
+- (AgenorUserManager *)userManager {
+  static AgenorUserManager *um = nil;
+  if (um == nil) um = [[AgenorUserManager sharedUserManager] retain];
+  return um;
+}
+
+/* properties */
+
+- (NSString *)email {
+  if (self->email == nil)
+    self->email = [[[self userManager] getEmailForUID:[self login]] copy];
+  return self->email;
+}
+
+- (NSString *)cn {
+  if (self->cn == nil)
+    self->cn = [[[self userManager] getCNForUID:[self login]] copy];
+  return self->cn;
+}
+
+- (NSString *)primaryIMAP4AccountString {
+  return [[self userManager] getIMAPAccountStringForUID:[self login]];
+}
+- (NSString *)primaryMailServer {
+  return [[self userManager] getServerForUID:[self login]];
+}
+
+- (NSArray *)additionalIMAP4AccountStrings {
+  return [[self userManager]getSharedMailboxAccountStringsForUID:[self login]];
+}
+- (NSArray *)additionalEMailAddresses {
+  return [[self userManager] getSharedMailboxEMailsForUID:[self login]];
+}
+
+- (NSURL *)freeBusyURL {
+  return [[self userManager] getFreeBusyURLForUID:[self login]];
+}
+
+@end /* SOGoUser */
index c7e764ff4db04bcf2bb10cf4a9a1ab94901e9703..ce7ecb1fbc4be937594105aa38efd4b3f0b890d9 100644 (file)
@@ -1,6 +1,6 @@
 # Version file
 
-SUBMINOR_VERSION:=29
+SUBMINOR_VERSION:=30
 
 # v0.9.24 requires libWEExtensions v4.5.67
 # v0.9.16 requires libNGExtensions v4.5.136
index 262707672ef6bc7183282f6e9d769ebcd45fd448..4c6f9f993b04c7a2663f845ef85b25c90556ac13 100644 (file)
             <tr>
               <td valign="top" align="left">
                 <font class="defaultfont"><var:entity const:name="copy"/>
-                  2000-2004 <a href="http://www.skyrix.com:80/knoppix/skyrix/"
+                  2004-2005 <a href="http://www.skyrix.com:80/knoppix/skyrix/"
                                target="SKYRIX"
                             >SKYRIX Software AG</a>.
                   We welcome your