mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-18 18:05:36 +00:00
Monotone-Parent: 94d50c27be1b236681a2089a0eecac7c67e93f40
Monotone-Revision: 34f9dea8fbc2c15f4324ce38e407bc6bdad1fc36 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-12-07T22:40:21 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -264,6 +264,7 @@
|
||||
SOGoCalendarComponent *co;
|
||||
SOGoUser *currentUser;
|
||||
BOOL hasOrganizer;
|
||||
SoSecurityManager *sm;
|
||||
|
||||
co = [self clientObject];
|
||||
owner = [co ownerInContext: context];
|
||||
@@ -271,8 +272,13 @@
|
||||
|
||||
hasOrganizer = ([[organizer value: 0] length] > 0);
|
||||
|
||||
sm = [SoSecurityManager sharedSecurityManager];
|
||||
|
||||
return ([co isNew]
|
||||
|| ([owner isEqualToString: [currentUser login]]
|
||||
|| (([owner isEqualToString: [currentUser login]]
|
||||
|| ![sm validatePermission: SOGoCalendarPerm_ModifyComponent
|
||||
onObject: co
|
||||
inContext: context])
|
||||
&& (!hasOrganizer || [component userIsOrganizer: currentUser])));
|
||||
}
|
||||
|
||||
@@ -934,26 +940,30 @@
|
||||
{
|
||||
NSString *organizerEmail;
|
||||
NSString *owner, *login;
|
||||
BOOL isOwner, hasOrganizer, hasAttendees;
|
||||
|
||||
owner = [[self clientObject] ownerInContext: context];
|
||||
login = [[context activeUser] login];
|
||||
isOwner = [owner isEqualToString: login];
|
||||
hasAttendees = ([[component attendees] count] > 0);
|
||||
organizerEmail = [[component organizer] email];
|
||||
if ([organizerEmail length] == 0)
|
||||
hasOrganizer = ([organizerEmail length] > 0);
|
||||
|
||||
if (hasOrganizer)
|
||||
{
|
||||
owner = [[self clientObject] ownerInContext: context];
|
||||
login = [[context activeUser] login];
|
||||
if (![owner isEqualToString: login]
|
||||
|| [[component attendees] count] > 0)
|
||||
if (isOwner && !hasAttendees)
|
||||
{
|
||||
ASSIGN (organizer, [iCalPerson elementWithTag: @"organizer"]);
|
||||
[organizer setCn: [organizerIdentity objectForKey: @"fullName"]];
|
||||
[organizer setEmail: [organizerIdentity objectForKey: @"email"]];
|
||||
[component setOrganizer: organizer];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ([[component attendees] count] == 0)
|
||||
if (!isOwner || hasAttendees)
|
||||
{
|
||||
ASSIGN (organizer, [iCalPerson elementWithTag: @"organizer"]);
|
||||
[organizer setCn: [organizerIdentity objectForKey: @"fullName"]];
|
||||
[organizer setEmail: [organizerIdentity objectForKey: @"email"]];
|
||||
[component setOrganizer: organizer];
|
||||
}
|
||||
}
|
||||
@@ -1039,7 +1049,7 @@
|
||||
if ([component userIsOrganizer: currentUser])
|
||||
toolbarFilename = @"SOGoComponentClose.toolbar";
|
||||
else
|
||||
{
|
||||
{
|
||||
if ([component userIsOrganizer: ownerUser]
|
||||
&& ![sm validatePermission: SOGoCalendarPerm_ModifyComponent
|
||||
onObject: clientObject
|
||||
|
||||
Reference in New Issue
Block a user