Update of /cvsroot/openinteract/OpenInteract2/pkg/base_user/OpenInteract2/Action
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17545/OpenInteract2/Action
Modified Files:
User.pm
Log Message:
on update/add failure, clear out the status messages and then go to
the original failure; should this be default?
Index: User.pm
===================================================================
RCS file: /cvsroot/openinteract/OpenInteract2/pkg/base_user/OpenInteract2/Action/User.pm,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** User.pm 22 Feb 2004 04:45:52 -0000 1.17
--- User.pm 1 Dec 2004 05:18:16 -0000 1.18
***************
*** 20,25 ****
sub search_form {
my ( $self ) = @_;
! return $self->generate_content(
! {}, { name => 'base_user::user_search_form' } );
}
--- 20,24 ----
sub search_form {
my ( $self ) = @_;
! return $self->generate_content();
}
***************
*** 34,40 ****
error_msg => $self->_msg( 'base_user.user.search_error', $@ ) );
}
! return $self->generate_content(
! { user_iterator => $iter },
! { name => 'base_user::user_search_results' } );
}
--- 33,37 ----
error_msg => $self->_msg( 'base_user.user.search_error', $@ ) );
}
! return $self->generate_content({ user_iterator => $iter });
}
***************
*** 132,143 ****
}
sub _add_customize {
my ( $self, $user, $save_options ) = @_;
! $self->_check_password_change( $user, 'display_add' );
}
sub _update_customize {
my ( $self, $user, $old_data, $save_options ) = @_;
! $self->_check_password_change( $user, 'display_form' );
}
--- 129,160 ----
}
+ sub _get_modify_fail_task {
+ my ( $self ) = @_;
+ my $original_task = $self->param( 'c_task' );
+ return 'display_add' if ( $original_task eq 'add' );
+ return 'display_update' if ( $original_task eq 'update' );
+ return undef;
+ }
+
sub _add_customize {
my ( $self, $user, $save_options ) = @_;
! $self->_check_password_change( $user );
}
sub _update_customize {
my ( $self, $user, $old_data, $save_options ) = @_;
! $self->_check_password_change( $user );
! }
!
! sub on_modify_fail {
! my ( $self ) = @_;
! my $original_task = $self->_get_modify_fail_task;
! unless ( $original_task ) {
! return "This task cannot be called directly, only from an internal action.";
! }
! $self->param_clear( 'status_msg' ); # get rid of any 'Password changed...' messages
! my $original_fail_task = ( $original_task eq 'update' )
! ? 'display_form' : 'display_add';
! return $self->execute({ task => $original_fail_task });
}
***************
*** 158,161 ****
--- 175,179 ----
$self->param_add(
error_msg => $self->_msg( 'base_user.user.password_mismatch' ) );
+ my $fail_task = $self->_get_modify_fail_task || 'display_add'; # just in case...
die $self->execute({ task => $fail_task });
}
|