diff options
author | Dave Arter <davea@mysociety.org> | 2019-08-06 14:38:43 +0100 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2019-08-07 10:28:58 +0100 |
commit | 09645c78dead379ce0acd27462d0fc3c6779948a (patch) | |
tree | d9bf9009f32df88eac995c9a512600d71deb12b9 /perllib/FixMyStreet/App/Controller/Admin/Users.pm | |
parent | 64d141404b5b6714b76c7606ad63cd05a78bf9c5 (diff) |
Redirect correctly after editing user to remove them from cobrand
Diffstat (limited to 'perllib/FixMyStreet/App/Controller/Admin/Users.pm')
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Admin/Users.pm | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Admin/Users.pm b/perllib/FixMyStreet/App/Controller/Admin/Users.pm index d29d2b8b9..fd18caf21 100644 --- a/perllib/FixMyStreet/App/Controller/Admin/Users.pm +++ b/perllib/FixMyStreet/App/Controller/Admin/Users.pm @@ -174,7 +174,7 @@ sub add : Local : Args(0) { $c->forward( '/admin/log_edit', [ $user->id, 'user', 'edit' ] ); $c->flash->{status_message} = _("Updated!"); - $c->res->redirect( $c->uri_for_action( 'admin/users/edit', $user->id ) ); + $c->detach('post_edit_redirect', [ $user ]); } sub fetch_body_roles : Private { @@ -415,7 +415,8 @@ sub edit : Path : Args(1) { $c->forward( '/admin/log_edit', [ $id, 'user', 'edit' ] ); } $c->flash->{status_message} = _("Updated!"); - return $c->res->redirect( $c->uri_for_action( 'admin/users/edit', $user->id ) ); + + $c->detach('post_edit_redirect', [ $user ]); } if ( $user->from_body ) { @@ -442,6 +443,18 @@ sub edit : Path : Args(1) { return 1; } +sub post_edit_redirect : Private { + my ( $self, $c, $user ) = @_; + + # User may not be visible on this cobrand, e.g. if their from_body + # wasn't set. + if ( $c->cobrand->users->find( { id => $user->id } ) ) { + return $c->res->redirect( $c->uri_for_action( 'admin/users/edit', $user->id ) ); + } else { + return $c->res->redirect( $c->uri_for_action( 'admin/users/index' ) ); + } +} + sub import :Local { my ( $self, $c, $id ) = @_; |