Monotone-Parent: d4724feea77a2bfe4a1315b1572ab4ae3ea3afc9
Monotone-Revision: d083c5462a586e018b7a81654d14c0bfa96479fd Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-01-19T13:38:09 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
4639bf6b99
commit
937bd959ed
|
@ -1,5 +1,12 @@
|
|||
2010-01-19 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* SoObjects/Appointments/SOGoAppointmentFolders.m
|
||||
(-hasProxyCalendarsWithWriteAccess:forUserWithLogin:)
|
||||
(-proxySubscribersWithWriteAccess)
|
||||
(-addProxySubscribers:withWriteAccess:)
|
||||
(removeProxySubscribers:withWriteAccess:): prevent caldav-proxy
|
||||
operations on the owner's subscribed resources.
|
||||
|
||||
* UI/Common/UIxFolderActions.m (-subscribeUsersAction): new web
|
||||
method that enables resource owners to subscribe other users to
|
||||
their resources from the acl editor.
|
||||
|
|
|
@ -397,7 +397,9 @@
|
|||
currentUser = [SOGoUser userWithLogin: userLogin];
|
||||
sortedSubFolders = [[self subFolders] objectEnumerator];
|
||||
while ((currentFolder = [sortedSubFolders nextObject]))
|
||||
if ([currentUser hasSubscribedToCalendar: currentFolder])
|
||||
if ([currentUser hasSubscribedToCalendar: currentFolder]
|
||||
&& [owner
|
||||
isEqualToString: [currentFolder ownerInContext: nil]])
|
||||
{
|
||||
curPermission = [currentFolder
|
||||
proxyPermissionForUserWithLogin: userLogin];
|
||||
|
@ -428,16 +430,19 @@
|
|||
for (folderCount = 0; folderCount < folderMax; folderCount++)
|
||||
{
|
||||
currentFolder = [subFolderNames objectAtIndex: folderCount];
|
||||
aclUsers = [currentFolder aclUsersWithProxyWriteAccess: write];
|
||||
userMax = [aclUsers count];
|
||||
for (userCount = 0; userCount < userMax; userCount++)
|
||||
if ([owner isEqualToString: [currentFolder ownerInContext: nil]])
|
||||
{
|
||||
aclUser = [aclUsers objectAtIndex: userCount];
|
||||
if (![subscribers containsObject: aclUser])
|
||||
aclUsers = [currentFolder aclUsersWithProxyWriteAccess: write];
|
||||
userMax = [aclUsers count];
|
||||
for (userCount = 0; userCount < userMax; userCount++)
|
||||
{
|
||||
currentUser = [SOGoUser userWithLogin: aclUser];
|
||||
if ([currentUser hasSubscribedToCalendar: currentFolder])
|
||||
[subscribers addObject: aclUser];
|
||||
aclUser = [aclUsers objectAtIndex: userCount];
|
||||
if (![subscribers containsObject: aclUser])
|
||||
{
|
||||
currentUser = [SOGoUser userWithLogin: aclUser];
|
||||
if ([currentUser hasSubscribedToCalendar: currentFolder])
|
||||
[subscribers addObject: aclUser];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -491,14 +496,17 @@
|
|||
for (folderCount = 0; folderCount < folderMax; folderCount++)
|
||||
{
|
||||
currentFolder = [subFolderNames objectAtIndex: folderCount];
|
||||
[currentFolder setRoles: proxyRoles
|
||||
forUsers: proxySubscribers];
|
||||
if ([owner isEqualToString: [currentFolder ownerInContext: nil]])
|
||||
{
|
||||
[currentFolder setRoles: proxyRoles
|
||||
forUsers: proxySubscribers];
|
||||
|
||||
userMax = [proxySubscribers count];
|
||||
for (userCount = 0; userCount < userMax; userCount++)
|
||||
[currentFolder
|
||||
subscribeUser: [proxySubscribers objectAtIndex: userCount]
|
||||
reallyDo: YES];
|
||||
userMax = [proxySubscribers count];
|
||||
for (userCount = 0; userCount < userMax; userCount++)
|
||||
[currentFolder
|
||||
subscribeUser: [proxySubscribers objectAtIndex: userCount]
|
||||
reallyDo: YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -517,13 +525,16 @@
|
|||
for (folderCount = 0; folderCount < folderMax; folderCount++)
|
||||
{
|
||||
currentFolder = [subFolderNames objectAtIndex: folderCount];
|
||||
[currentFolder removeAclsForUsers: proxySubscribers];
|
||||
if ([owner isEqualToString: [currentFolder ownerInContext: nil]])
|
||||
{
|
||||
[currentFolder removeAclsForUsers: proxySubscribers];
|
||||
|
||||
userMax = [proxySubscribers count];
|
||||
for (userCount = 0; userCount < userMax; userCount++)
|
||||
[currentFolder
|
||||
subscribeUser: [proxySubscribers objectAtIndex: userCount]
|
||||
reallyDo: NO];
|
||||
userMax = [proxySubscribers count];
|
||||
for (userCount = 0; userCount < userMax; userCount++)
|
||||
[currentFolder
|
||||
subscribeUser: [proxySubscribers objectAtIndex: userCount]
|
||||
reallyDo: NO];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue