]> git.decadent.org.uk Git - maypole.git/commitdiff
making Untainting less awful
authorAaron Trevena <aaron.trevena@gmail.com>
Tue, 7 Feb 2006 16:15:09 +0000 (16:15 +0000)
committerAaron Trevena <aaron.trevena@gmail.com>
Tue, 7 Feb 2006 16:15:09 +0000 (16:15 +0000)
git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@454 48953598-375a-da11-a14b-00016c27c3ee

Changes
lib/Maypole/Model/CDBI.pm
lib/Maypole/View/TT.pm

diff --git a/Changes b/Changes
index 0792dae8d4b42e0aaeff06557448ca6814a0aac0..5ccf7751bc1f2a03345de8ad6c00d9fe2b1a94a1 100644 (file)
--- a/Changes
+++ b/Changes
@@ -52,6 +52,8 @@ API additions and enhancements:
        - Improved factory templates
         - added the status() attribute, although it's not used in many places 
             yet
+     Maypole::Model::CDBI
+       - improved error messages in do_edit action
 
 Bug fixes:
     Fix to cgi_maypole.t (bug 11346)
index 5013d4ff54063f9d07f4617f5336f0f3d157cd89..32f36b909ea174c37f4f6af9e1a61bbde0288450 100644 (file)
@@ -77,7 +77,25 @@ sub do_edit : Exported {
   if (%errors) {
     # Set it up as it was:
     $r->template_args->{cgi_params} = $r->params;
-    $r->template_args->{errors}     = \%errors;
+
+    #
+    # replace user unfriendly error messages with something nicer
+
+    foreach (@{$config->{$table}->{required_cols}}) {
+      next unless ($errors{$_});
+      my $key = $_;
+      s/_/ /g;
+      $r->template_args->{errors}{ucfirst($_)} = 'This field is required, please provide a valid value';
+      $r->template_args->{errors}{$key} = 'This field is required, please provide a valid value';
+      delete $errors{$key};
+    }
+
+    foreach (keys %errors) {
+      my $key = $_;
+      s/_/ /g;
+      $r->template_args->{errors}{ucfirst($_)} = 'Please provide a valid value for this field';
+      $r->template_args->{errors}{$key} = 'Please provide a valid value for this field';
+    }
 
     undef $obj if $creating;
     $r->template("edit");
@@ -102,7 +120,9 @@ sub _do_update_or_create {
     eval { $obj->update_from_cgi( $h => {
                                         required => $required_cols,
                                         ignore => $ignored_cols,
-                                       } ) };
+                                       } );
+          $obj->update(); # pos fix for bug 17132 'autoupdate required by do_edit'
+        };
     $fatal = $@;
   } else {
     eval {
index 7106b7a563f0d5593fdbe3860752aa488b1b575f..b837e529a60d2423eb1377b6017ffe6fdaf0cfb7 100644 (file)
@@ -32,8 +32,7 @@ sub template {
     if ($self->{tt}->process($template_file, { $self->vars($r) }, \$output )) {
         $r->{output} = $output;
         return OK;
-    }
-    else {
+    } else {
        $r->{error} = "TT error for template '$template_file'\n" . $self->{tt}->error;
         return ERROR;
     }