]> err.no Git - scalable-opengroupware.org/commitdiff
Fixed 'only organizer can edit appointments' once and for all, moved some functionality
authorznek <znek@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Fri, 8 Jul 2005 13:29:26 +0000 (13:29 +0000)
committerznek <znek@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Fri, 8 Jul 2005 13:29:26 +0000 (13:29 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@705 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/UI/SOGoUI/ChangeLog
SOGo/UI/SOGoUI/UIxComponent.m
SOGo/UI/SOGoUI/Version
SOGo/UI/Scheduler/ChangeLog
SOGo/UI/Scheduler/UIxAppointmentEditor.m
SOGo/UI/Scheduler/UIxAppointmentView.m
SOGo/UI/Scheduler/UIxComponent+Agenor.h
SOGo/UI/Scheduler/UIxComponent+Agenor.m
SOGo/UI/Scheduler/Version
SOGo/UI/Templates/ChangeLog
SOGo/UI/Templates/UIxAppointmentEditor.wox

index 8393312adffeb36c39b0301088ca67878f1c3365..d9bd88783b78b3b03d648e63e732e2c29b323af6 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-08  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * UIxComponent.m: moved -isAccessRestricted method to
+         UIxComponent+Agenor (v0.9.28)
+
 2005-07-07  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * v0.9.27
index 8434265c652211ae1fb69928e018460ef114e635..ce4cd22801cd2de5f8735bb4beb82cd79cf32c47 100644 (file)
@@ -435,16 +435,6 @@ static BOOL uixDebugEnabled = NO;
   return [[self context] valueForKey:@"locale"];
 }
 
-/* Access is in several ways restricted if request is not coming from the
- * Intranet
- */
-
-- (BOOL)isAccessRestricted {
-  NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
-  
-  return [ud boolForKey:@"SOGoAccessIsRestricted"];
-}
-
 /* debugging */
 
 - (BOOL)isUIxDebugEnabled {
index e67137c3922b8d967c17f599d507ce9400bb9440..6b91cf1ae42993c3467455adb19f17b8dc316eaa 100644 (file)
@@ -1,5 +1,5 @@
 # version file
 
-SUBMINOR_VERSION:=27
+SUBMINOR_VERSION:=28
 
 # v0.9.18 requires NGExtensions v4.5.136
index 85ba43f454fda45e2e17d0592cefdba585a9d6bc..7b80d28ceeb30a788e7169ac553fd40f212acedf 100644 (file)
@@ -1,3 +1,17 @@
+2005-07-08  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * v0.9.126
+
+       * UIxComponent+Agenor.[hm]: new method -isAccessRestricted, uses the
+         implementation from WOContext+Agenor in libSOGo.
+         
+       * UIxAppointmentView.m: allow editing of appointments that have no
+         organizer set.
+
+       * UIxAppointmentEditor.m: allow editing of appointments that have no
+         organizer set. Redirect to 'view' URI in case editor is not the
+         organizer. Fixed a bug where the organizer got accidentaly deleted.
+
 2005-07-07  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * v0.9.125
index 945711d7236fbf37737b2d34a05cf07b64abacdc..e971ea0c4c2ed173eb4c54deb857d3809d81bfe6 100644 (file)
   [_appointment setAccessClass:[self accessClass]];
   [_appointment setTransparency:[self transparency]];
 
+#if 0
+  /* bad, bad, bad!
+   * Organizer is no form value, thus we MUST NOT change it
+   */
   [_appointment setOrganizer:self->organizer];
+#endif
   attendees  = [self participants];
   lResources = [self resources];
   if ([lResources count] > 0) {
 /* access */
 
 - (BOOL)isMyApt {
+  if (!self->organizer) return YES; // assume this is safe to do, right?
   return [[self->organizer rfc822Email] isEqualToString:[self emailForUser]];
 }
 
   [self setContentString:ical];
   [self loadValuesFromContentString:ical];
   
+  if (![self canEditApt]) {
+    /* TODO: we need proper ACLs */
+    return [self redirectToLocation:[self _completeURIForMethod:@"../view"]];
+  }
   return self;
 }
 
index f53d5c4fb95c4f858a5033ba02c58924f36d7921..08028decd410592369ad3594ed861e265e4d17a6 100644 (file)
   iCalPerson *organizer;
   
   organizer = [[self appointment] organizer];
+  if (!organizer) return YES; // assume this is correct to do, right?
   return [[organizer rfc822Email] isEqualToString:[self emailForUser]];
 }
 
index 9e4c2145c830d4e04f1a93204be1d469f28b586f..1a0232a878cfe891e6142569bffb8893366dfefb 100644 (file)
 #ifndef        __UIxComponent_Agenor_H_
 #define        __UIxComponent_Agenor_H_
 
-
-#import <SOGoUI/UIxComponent.h>
-
+#include <SOGoUI/UIxComponent.h>
 
 @interface UIxComponent (Agenor)
 /* email, cn */
 - (NSString *)emailForUser;
 - (NSString *)cnForUser;
+
+/* restrictions */
+- (BOOL)isAccessRestricted;
 @end
 
 #endif /* __UIxComponent_Agenor_H_ */
index e5831d6782d620977a12aced4eb052a734499272..9e3ae2733403e956653c5e22032e92f5c4c919cf 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "UIxComponent+Agenor.h"
 #include <SOGo/AgenorUserManager.h>
+#include <SOGo/WOContext+Agenor.h>
 #include "common.h"
 
 @implementation UIxComponent(Agenor)
@@ -39,4 +40,8 @@
   return [[AgenorUserManager sharedUserManager] getCNForUID:uid];
 }
 
+- (BOOL)isAccessRestricted {
+  return [[self context] isAccessFromIntranet] ? NO : YES;
+}
+
 @end /* UIxComponent(Agenor) */
index 9532d64958cfe050c4f43ed6ab479d543a7391a0..05f29d4dafc0aacf98be47b46b7ec7b41cd93839 100644 (file)
@@ -1,6 +1,6 @@
 # Version file
 
-SUBMINOR_VERSION:=125
+SUBMINOR_VERSION:=126
 
 # v0.9.123 requires Appointments v0.9.35
 # v0.9.123 requires SOGoUI       v0.9.24
index 40019ba19bcb88cda547cfb853c593270cb2b4cb..7e7065b0642287a2bca85d452b6d1fc98dea60ac 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-08  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * UIxAppointmentEditor.wox: removed conditionals from UI as they were
+         wrongly placed in the template, component does now deal with it
+
 2005-07-07  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * UIxPageFrame.wox: added 'Home' and 'Administration' hyperlink
index 5e630af978a41af1de73e8a36536acbdf5d25272..a99719bc72939c4e4eafeb162cd18473ed8a069a 100644 (file)
@@ -7,8 +7,7 @@
                className="UIxPageFrame"
                title="name"
 >
-  <var:if condition="canEditApt"> <!-- workaround -->
-    <form var:href="clientObject.baseURL">
+  <form var:href="clientObject.baseURL">
       <script language="JavaScript"> <!-- TODO: use a resource -->
         <var:string value="jsCode" const:escapeHTML="NO" />
       </script>
           </td>
         </tr>
       </table>
-  
-      <input type="hidden" name="ical" var:value="iCalString" />
-    </form>
-  </var:if>
-  
+    <input type="hidden" name="ical" var:value="iCalString" />
+  </form>
+  <!--
   <var:if condition="canEditApt" const:negate="YES">
     Forbidden ... <var:redirect const:setURL="view" />
   </var:if>
+  -->
 </var:component>