Monotone-Parent: cf8164b6f952e813c169ac20422479f98450cc37

Monotone-Revision: bafb19936650e4226152d9b06d89e2cefc8d9c5b

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2010-02-19T19:04:19
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2010-02-19 19:04:19 +00:00
parent e73b7889f5
commit e70b3cdf8e
2 changed files with 23 additions and 10 deletions

View File

@ -1,5 +1,9 @@
2010-02-19 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* UI/Scheduler/UIxCalListingActions.m (:):
_fetchFields:forComponentOfType: mark events of remote calendars
as non-editable.
* UI/Common/UIxPageFrame.m (-userIdentification): ancient
"userEmail" method, with a more generic name. Also we now return
the user's complete name.

View File

@ -51,6 +51,7 @@
#import <Appointments/SOGoAppointmentFolder.h>
#import <Appointments/SOGoAppointmentFolders.h>
#import <Appointments/SOGoAppointmentObject.h>
#import <Appointments/SOGoWebAppointmentFolder.h>
#import <Appointments/SOGoFreeBusyObject.h>
#import <UI/Common/WODirectAction+SOGo.h>
@ -316,7 +317,7 @@ static NSArray *tasksFields = nil;
SOGoAppointmentFolders *clientObject;
SOGoUser *ownerUser;
NSString *owner, *role;
BOOL isErasable;
BOOL isErasable, *folderIsRemote;
infos = [NSMutableArray array];
marker = [NSNull null];
@ -328,6 +329,8 @@ static NSArray *tasksFields = nil;
if ([currentFolder isActive]
&& (![component isEqualToString: @"vtodo"] || [currentFolder showCalendarTasks]))
{
folderIsRemote
= [currentFolder isKindOfClass: [SOGoWebAppointmentFolder class]];
currentInfos
= [[currentFolder fetchCoreInfosFrom: startDate
to: endDate
@ -341,17 +344,23 @@ static NSArray *tasksFields = nil;
{
if ([fields containsObject: @"editable"])
{
role =
[currentFolder roleForComponentsWithAccessClass:
[[newInfo objectForKey: @"c_classification"] intValue]
forUser: userLogin];
if ([role isEqualToString: @"ComponentModifier"]
|| [role length] == 0)
[newInfo setObject: [NSNumber numberWithInt: 1]
forKey: @"editable"];
else
if (folderIsRemote)
[newInfo setObject: [NSNumber numberWithInt: 0]
forKey: @"editable"];
else
{
role =
[currentFolder roleForComponentsWithAccessClass:
[[newInfo objectForKey: @"c_classification"] intValue]
forUser: userLogin];
if ([role isEqualToString: @"ComponentModifier"]
|| [role length] == 0)
[newInfo setObject: [NSNumber numberWithInt: 1]
forKey: @"editable"];
else
[newInfo setObject: [NSNumber numberWithInt: 0]
forKey: @"editable"];
}
}
if ([fields containsObject: @"ownerIsOrganizer"])
{