]> err.no Git - scalable-opengroupware.org/commitdiff
perform some validation prior trying to send mail (#1451)
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 12 Jul 2005 14:28:21 +0000 (14:28 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 12 Jul 2005 14:28:21 +0000 (14:28 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@724 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/UI/MailerUI/ChangeLog
SOGo/UI/MailerUI/UIxMailEditor.m
SOGo/UI/MailerUI/Version

index 39c4ceff5a0a66d0ae529ec56f720716277a84cd..afe4b66a8c2fd24f63beff507fa4a7744625f771 100644 (file)
@@ -1,5 +1,9 @@
 2005-07-12  Helge Hess  <helge.hess@opengroupware.org>
 
+       * UIxMailEditor.m: perform some validation plus error handling prior
+         trying to send a mail (check whether we have recipients, check
+         whether the subject is set) (#1451) (v0.9.139)
+
        * UIxMailEditor.m: properly determine from-email addresses (v0.9.138)
 
        * UIxMailEditor.m: use new SoUser API instead of AgenorUserManager
index ebc46c2b428b0cca9b57cf8facf1b37c7cee0987..449744cb9102770385de2655ede973d01681d78e 100644 (file)
@@ -169,6 +169,13 @@ static NSArray      *infoKeys = nil;
   return [self->bcc isNotNull] ? self->bcc : [NSArray array];
 }
 
+- (BOOL)hasOneOrMoreRecipients {
+  if ([[self to]  count] > 0) return YES;
+  if ([[self cc]  count] > 0) return YES;
+  if ([[self bcc] count] > 0) return YES;
+  return NO;
+}
+
 /* from addresses */
 
 - (NSArray *)fromEMails {
@@ -324,6 +331,21 @@ static NSArray      *infoKeys = nil;
   return [self _saveFormInfo] ? self : [self failedToSaveFormResponse];
 }
 
+- (NSException *)validateForSend {
+  // TODO: localize errors
+  
+  if (![self hasOneOrMoreRecipients]) {
+    return [NSException exceptionWithHTTPStatus:400 /* Bad Request */
+                       reason:@"Please select a recipient!"];
+  }
+  if ([[self subject] length] == 0) {
+    return [NSException exceptionWithHTTPStatus:400 /* Bad Request */
+                       reason:@"Please set a subject!"];
+  }
+  
+  return nil;
+}
+
 - (id)sendAction {
   NSException  *error;
   NSString     *mailPath;
@@ -335,7 +357,17 @@ static NSArray      *infoKeys = nil;
   
   if (![self _saveFormInfo])
     return [self failedToSaveFormResponse];
-
+  
+  /* validate for send */
+  
+  if ((error = [self validateForSend]) != nil) {
+    id url;
+    
+    url = [[error reason] stringByEscapingURL];
+    url = [@"edit?error=" stringByAppendingString:url];
+    return [self redirectToLocation:url];
+  }
+  
   /* setup some extra headers if required */
   
   h = [self isInternetRequest] ? internetMailHeaders : nil;
index 5ce1ef83c6be498e06e210ef46e7f85184b9ae8b..72fcdb5ca98fe1687fbe8eda27776319bac62a15 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=138
+SUBMINOR_VERSION:=139
 
 # v0.9.134 requires libSOGo          v0.9.41
 # v0.9.100 requires libNGMime        v4.5.213