[freeside-commits] branch master updated. 8944f813b2d664b38bcbe349ac6897a0314e3b9d

Ivan Kohler ivan at freeside.biz
Thu Aug 2 12:59:16 PDT 2018


The branch, master has been updated
       via  8944f813b2d664b38bcbe349ac6897a0314e3b9d (commit)
      from  b617db414a0073ae69f7416d113541679f5d7bfd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8944f813b2d664b38bcbe349ac6897a0314e3b9d
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Thu Aug 2 12:59:15 2018 -0700

    fix editing employee pw, RT#32456

diff --git a/httemplate/edit/process/access_user.html b/httemplate/edit/process/access_user.html
index fcd210f83..d589c620e 100644
--- a/httemplate/edit/process/access_user.html
+++ b/httemplate/edit/process/access_user.html
@@ -11,7 +11,7 @@
                                        'target_table' => 'access_group',
                                      },
                  'precheck_callback'        => \&precheck_callback,
-                 #'post_new_object_callback' => \&post_new_object_callback,
+                 'post_new_object_callback' => \&post_new_object_callback,
                  'noerror_callback'         => \&noerror_callback,
              )
 %>
@@ -38,24 +38,19 @@ sub precheck_callback {
   return '';
 }
 
-#sub post_new_object_callback {
-#  my( $cgi, $access_user ) = @_;
-#
-#  if ( length($cgi->param('_password')) ) {
-#    my $password = scalar($cgi->param('_password'));
-#    my $error = $access_user->is_password_allowed($password);
-#    #XXX and then bubble the error back up to the UI
-#  }
-#}
+sub post_new_object_callback {
+  my( $cgi, $access_user ) = @_;
+
+  return '' unless length($cgi->param('_password'));
+
+  my $password = scalar($cgi->param('_password'));
+  $access_user->is_password_allowed($password)
+    || $access_user->change_password_fields($password);
+}
 
 sub noerror_callback {
   my( $cgi, $access_user ) = @_;
 
-  if ( length($cgi->param('_password')) ) {
-    my $password = scalar($cgi->param('_password'));
-    $access_user->change_password($password);
-  }
-
   #handle installer checkbox
   my @sched_item = $access_user->sched_item;
   my $sched_item = $sched_item[0];
diff --git a/httemplate/edit/process/elements/process.html b/httemplate/edit/process/elements/process.html
index c197eb123..85f060e32 100644
--- a/httemplate/edit/process/elements/process.html
+++ b/httemplate/edit/process/elements/process.html
@@ -80,8 +80,12 @@ Example:
    'precheck_callback' => sub { my( $cgi ) = @_; },
 
    #after the new object is created
+   #return an error string or empty for no error
    'post_new_object_callback' => sub { my( $cgi, $object ) = @_; },
 
+   #run right before replacing (not run for inserts)
+   'edit_callback' => sub { my( $new, $old ) = @_; },
+
    #after everything's inserted
    'noerror_callback' => sub { my( $cgi, $object ) = @_; },
 
diff --git a/httemplate/edit/process/saved_search.html b/httemplate/edit/process/saved_search.html
index 7ae7e0d78..51e40edad 100644
--- a/httemplate/edit/process/saved_search.html
+++ b/httemplate/edit/process/saved_search.html
@@ -10,6 +10,8 @@ my $callback = sub {
   $obj->usernum( $FS::CurrentUser::CurrentUser->usernum );
   # if this would change it from its existing owner, replace_check
   # will refuse
+
+  ''; #no error
 };
 
 </%init>

-----------------------------------------------------------------------

Summary of changes:
 httemplate/edit/process/access_user.html      | 25 ++++++++++---------------
 httemplate/edit/process/elements/process.html |  4 ++++
 httemplate/edit/process/saved_search.html     |  2 ++
 3 files changed, 16 insertions(+), 15 deletions(-)




More information about the freeside-commits mailing list