Monotone-Parent: d20c7d683d0045394dd1f0a002a37f7aecf38ce1

Monotone-Revision: 14b1d75f21b83c7e79aaa832f13fcfd18393d8ea

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2008-03-28T14:15:46
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2008-03-28 14:15:46 +00:00
parent 5dd408cc43
commit 2a64c9ddca
2 changed files with 27 additions and 13 deletions

View File

@@ -1,3 +1,11 @@
2008-03-28 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/Appointments/SOGoAppointmentFolder.m
([SOGoAppointmentFolder
-appendObject:objectproperties:propertieswithBaseURL:baseURLtoComplexResponse:r]):
check whether the current user has access to the objects returned
before including their properties.
2008-03-27 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/AgenorUserDefaults.m ([AgenorUserDefaults

View File

@@ -246,26 +246,32 @@ static NSNumber *sharedYes = nil;
NSMutableDictionary *currentValue;
SOGoObject *sogoObject;
NSString *content;
SoSecurityManager *mgr;
values = [NSMutableArray array];
// if ([[object objectForKey: @"c_name"] isEqualToString: @"176A-4E8BDE62-5-B73ECD10"])
// NSLog(@"breajpoint");
#warning this check should be done directly in the query... we should fix this sometime
mgr = [SoSecurityManager sharedSecurityManager];
sogoObject = [self lookupName: [object objectForKey: @"c_name"]
inContext: context
acquire: NO];
list = [properties objectEnumerator];
while ((currentProperty = [list nextObject]))
if (!([mgr validatePermission: SOGoPerm_AccessObject
onObject: sogoObject
inContext: context]))
{
currentValue = [NSMutableDictionary dictionary];
[currentValue setObject: currentProperty
forKey: @"property"];
content = [self _property: currentProperty
ofObject: sogoObject];
if (content)
[currentValue setObject: content
forKey: @"content"];
[values addObject: currentValue];
list = [properties objectEnumerator];
while ((currentProperty = [list nextObject]))
{
currentValue = [NSMutableDictionary dictionary];
[currentValue setObject: currentProperty
forKey: @"property"];
content = [self _property: currentProperty
ofObject: sogoObject];
if (content)
[currentValue setObject: content
forKey: @"content"];
[values addObject: currentValue];
}
}
return values;