Monotone-Parent: ac5956502faf7c4b91df6d48458fad8d43190b66

Monotone-Revision: 4aaa3d89a907d67df8c23bdce5f9fb5be71e663d

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-04-12T00:34:43
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2007-04-12 00:34:43 +00:00
parent 5be8b033ce
commit 4063ec97a6
7 changed files with 40 additions and 36 deletions

View File

@ -18,7 +18,7 @@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. 02111-1307, USA.
*/ */
// $Id: SOGoFreeBusyObject.m 1011 2007-01-13 00:07:16Z wolfgang $ // $Id: SOGoFreeBusyObject.m 1045 2007-04-11 20:13:07Z wolfgang $
#import <NGCards/iCalCalendar.h> #import <NGCards/iCalCalendar.h>
#import <NGCards/iCalFreeBusy.h> #import <NGCards/iCalFreeBusy.h>

View File

@ -218,28 +218,28 @@
return [contactFolders allValues]; return [contactFolders allValues];
} }
- (NSString *) roleOfUser: (NSString *) uid // - (NSString *) roleOfUser: (NSString *) uid
{ // {
NSArray *roles, *traversalPath; // NSArray *roles, *traversalPath;
NSString *objectName, *role; // NSString *objectName, *role;
role = nil; // role = nil;
traversalPath = [context objectForKey: @"SoRequestTraversalPath"]; // traversalPath = [context objectForKey: @"SoRequestTraversalPath"];
if ([traversalPath count] > 2) // if ([traversalPath count] > 2)
{ // {
objectName = [traversalPath objectAtIndex: 2]; // objectName = [traversalPath objectAtIndex: 2];
roles = [[context activeUser] // roles = [[context activeUser]
rolesForObject: [self lookupName: objectName // rolesForObject: [self lookupName: objectName
inContext: context // inContext: context
acquire: NO] // acquire: NO]
inContext: context]; // inContext: context];
if ([roles containsObject: SOGoRole_Assistant] // if ([roles containsObject: SOGoRole_Assistant]
|| [roles containsObject: SOGoRole_Delegate]) // || [roles containsObject: SOGoRole_Delegate])
role = SOGoRole_Assistant; // role = SOGoRole_Assistant;
} // }
return role; // return role;
} // }
- (BOOL) davIsCollection - (BOOL) davIsCollection
{ {

View File

@ -37,17 +37,16 @@ static NSString *AgenorShareLoginMarker = @".-.";
/* listing the available mailboxes */ /* listing the available mailboxes */
- (BOOL)isInHomeFolderBranchOfLoggedInAccount:(id)_ctx { - (BOOL) isInHomeFolderBranchOfLoggedInAccount: (NSString *) userLogin
id user; {
return [[[self container] nameInContainer] isEqualToString: userLogin];
user = [_ctx activeUser];
return [[[self container] nameInContainer] isEqualToString:[user login]];
} }
- (NSArray *)toManyRelationshipKeys { - (NSArray *)toManyRelationshipKeys {
id user; SOGoUser *user;
id account; id account;
NSArray *shares; NSArray *shares;
NSString *userLogin;
/* /*
Note: this is not strictly correct. The accounts being retrieved should be Note: this is not strictly correct. The accounts being retrieved should be
@ -60,15 +59,16 @@ static NSString *AgenorShareLoginMarker = @".-.";
=> TODO => TODO
*/ */
user = [context activeUser]; user = [context activeUser];
userLogin = [user login];
/* for now: return nothing if the home-folder does not belong to the login */ /* for now: return nothing if the home-folder does not belong to the login */
if (![self isInHomeFolderBranchOfLoggedInAccount: context]) { if (![self isInHomeFolderBranchOfLoggedInAccount: userLogin]) {
[self warnWithFormat:@"User %@ tried to access mail hierarchy of %@", [self warnWithFormat:@"User %@ tried to access mail hierarchy of %@",
[user login], [[self container] nameInContainer]]; [user login], [[self container] nameInContainer]];
return nil; return nil;
} }
account = [user valueForKey:@"primaryIMAP4AccountString"]; account = [user primaryIMAP4AccountString];
if ([account isNotNull]) account = [NSArray arrayWithObject:account]; if ([account isNotNull]) account = [NSArray arrayWithObject:account];
if ([self isInternetRequest]) /* only show primary mailbox in Internet */ if ([self isInternetRequest]) /* only show primary mailbox in Internet */
@ -141,16 +141,20 @@ static NSString *AgenorShareLoginMarker = @".-.";
return [ct autorelease]; return [ct autorelease];
} }
- (id)lookupName:(NSString *)_key inContext:(id)_ctx acquire:(BOOL)_flag { - (id)lookupName:(NSString *)_key inContext:(id)_ctx acquire:(BOOL)_flag
{
id obj; id obj;
NSString *userLogin;
userLogin = [[context activeUser] login];
/* first check attributes directly bound to the application */ /* first check attributes directly bound to the application */
if ((obj = [super lookupName:_key inContext:_ctx acquire:NO])) if ((obj = [super lookupName:_key inContext:_ctx acquire:NO]))
return obj; return obj;
if (![self isInHomeFolderBranchOfLoggedInAccount:_ctx]) { if (![self isInHomeFolderBranchOfLoggedInAccount: userLogin]) {
[self warnWithFormat:@"User %@ tried to access mail hierarchy of %@", [self warnWithFormat:@"User %@ tried to access mail hierarchy of %@",
[[_ctx activeUser] login], [[self container] nameInContainer]]; userLogin, [[self container] nameInContainer]];
return [NSException exceptionWithHTTPStatus:403 /* Forbidden */ return [NSException exceptionWithHTTPStatus:403 /* Forbidden */
reason:@"Tried to access the mail of another user"]; reason:@"Tried to access the mail of another user"];

View File

@ -1,4 +1,4 @@
// $Id: UIxAppointmentView.h 768 2005-07-15 00:13:01Z helge $ // $Id: UIxAppointmentView.h 1045 2007-04-11 20:13:07Z wolfgang $
#ifndef __SOGo_UIxAppointmentView_H__ #ifndef __SOGo_UIxAppointmentView_H__
#define __SOGo_UIxAppointmentView_H__ #define __SOGo_UIxAppointmentView_H__

View File

@ -1,4 +1,4 @@
// $Id: UIxCalView.h 1040 2007-04-02 21:29:40Z wolfgang $ // $Id: UIxCalView.h 1045 2007-04-11 20:13:07Z wolfgang $
#ifndef __SOGo_UIxCalView_H__ #ifndef __SOGo_UIxCalView_H__
#define __SOGo_UIxCalView_H__ #define __SOGo_UIxCalView_H__

View File

@ -1,4 +1,4 @@
// $Id: UIxCalView.m 1040 2007-04-02 21:29:40Z wolfgang $ // $Id: UIxCalView.m 1045 2007-04-11 20:13:07Z wolfgang $
#import "common.h" #import "common.h"
//#import <OGoContentStore/OCSFolder.h> //#import <OGoContentStore/OCSFolder.h>

View File

@ -18,7 +18,7 @@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. 02111-1307, USA.
*/ */
// $Id: UIxTimeDateControl.m 1033 2007-03-22 19:04:08Z wolfgang $ // $Id: UIxTimeDateControl.m 1045 2007-04-11 20:13:07Z wolfgang $
#import <Foundation/NSArray.h> #import <Foundation/NSArray.h>
#import <Foundation/NSString.h> #import <Foundation/NSString.h>