From: Chris W. <la...@us...> - 2004-12-01 05:18:24
|
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 }); } |