2005-07-07 Marcus Mueller <znek@mulle-kybernetik.com>
+ * v0.9.27
+
+ * UIxComponent.m: implicitly set the context's queryPathSeperator
+ when generating URIs used in redirects
+
+ * v0.9.26
+
* UIxComponent.m: added method -isAccessRestricted to indicate whether
certain options might have to be disabled due to restrictions
- set by the customer (v0.9.26)
+ set by the customer
2005-07-06 Helge Hess <helge.hess@opengroupware.org>
}
- (NSString *)completeHrefForMethod:(NSString *)_method {
+ WOContext *ctx;
NSDictionary *qp;
- NSString *qs;
-
+ NSString *qs, *qps;
+
qp = [self queryParameters];
if([qp count] == 0)
return _method;
-
- qs = [[self context] queryStringFromDictionary:qp];
+
+ ctx = [self context];
+ qps = [ctx queryPathSeparator];
+ [ctx setQueryPathSeparator:@"&"];
+ qs = [ctx queryStringFromDictionary:qp];
+ [ctx setQueryPathSeparator:qps];
return [_method stringByAppendingFormat:@"?%@", qs];
}
# version file
-SUBMINOR_VERSION:=26
+SUBMINOR_VERSION:=27
# v0.9.18 requires NGExtensions v4.5.136
+2005-07-07 Marcus Mueller <znek@mulle-kybernetik.com>
+
+ * v0.9.125
+
+ * UIxAppointmentEditor.m: Properly preserve organizer of appointments.
+ This is now also used to validate if user is allowed to edit an
+ appointment.
+
+ * UIxAppointmentView.m: changed -isMyApt to test on organizer's email
+ address and user's email address to decide whether he is allowed
+ to edit the appointment in question.
+
2005-07-06 Marcus Mueller <znek@mulle-kybernetik.com>
* UIxAppointmentProposal.m: changed implementation of
NSString *title;
NSString *location;
NSString *comment;
+ iCalPerson *organizer;
NSArray *participants; /* array of iCalPerson's */
NSArray *resources; /* array of iCalPerson's */
NSString *priority;
[self->cycleUntilDate release];
[self->title release];
[self->location release];
+ [self->organizer release];
[self->comment release];
[self->participants release];
[self->resources release];
self->comment = [[_appointment comment] copy];
self->priority = [[_appointment priority] copy];
self->categories = [[_appointment categories] retain];
+ self->organizer = [[_appointment organizer] retain];
self->participants = [[_appointment participants] retain];
self->resources = [[_appointment resources] retain];
[_appointment setAccessClass:[self accessClass]];
[_appointment setTransparency:[self transparency]];
+ [_appointment setOrganizer:self->organizer];
attendees = [self participants];
lResources = [self resources];
if ([lResources count] > 0) {
/* access */
- (BOOL)isMyApt {
- NSString *owner;
-
- owner = [[self clientObject] ownerInContext:[self context]];
- if (!owner)
- return YES;
- return [owner isEqualToString:[[self user] login]];
+ return [[self->organizer rfc822Email] isEqualToString:[self emailForUser]];
}
- (BOOL)canAccessApt {
/* access */
- (BOOL)isMyApt {
- NSString *owner;
+ iCalPerson *organizer;
- owner = [[self clientObject] ownerInContext:[self context]];
- if (!owner)
- return YES;
- return [owner isEqualToString:[[self user] login]];
+ organizer = [[self appointment] organizer];
+ return [[organizer rfc822Email] isEqualToString:[self emailForUser]];
}
- (BOOL)canAccessApt {
# Version file
-SUBMINOR_VERSION:=124
+SUBMINOR_VERSION:=125
# v0.9.123 requires Appointments v0.9.35
# v0.9.123 requires SOGoUI v0.9.24