X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/94beb18a8c25fbb01f3599e054382e5ce9683583..588772c3c02c44d67cb8672749bac5f2689c2c3c:/bin/mozilla/admin.pl diff --git a/bin/mozilla/admin.pl b/bin/mozilla/admin.pl index 160d30366..daae59a23 100644 --- a/bin/mozilla/admin.pl +++ b/bin/mozilla/admin.pl @@ -452,9 +452,8 @@ sub save_user { # check for duplicates if (!$form->{edit}) { my %members = $auth->read_all_users(); - if ($members{$form->{login}}) { - $form->error("$form->{login} " . $locale->text('is already a member!')); + $form->show_generic_error($locale->text('Another user with the login #1 does already exist.', $form->{login}), 'back_button' => 1); } } @@ -573,10 +572,32 @@ sub save_user { } } + # Add new user to his groups. + if (ref $form->{new_user_group_ids} eq 'ARRAY') { + my $all_groups = $auth->read_groups(); + my %user = $auth->read_user($form->{login}); + + foreach my $group_id (@{ $form->{new_user_group_ids} }) { + my $group = $all_groups->{$group_id}; + + next if !$group; + + push @{ $group->{members} }, $user{id}; + $auth->save_group($group); + } + } + $form->redirect($locale->text('User saved!')); } +sub save_user_as_new { + $form->{login} = $form->{new_user_login}; + delete @{$form}{qw(edit new_user_login)}; + + save_user(); +} + sub delete_user { my %members = $auth->read_all_users(); my $templates = $members{$form->{login}}->{templates}; @@ -1127,7 +1148,8 @@ sub back { } sub dispatcher { - foreach my $action (qw(create_standard_group dont_create_standard_group)) { + foreach my $action (qw(create_standard_group dont_create_standard_group + save_user delete_user save_user_as_new)) { if ($form->{"action_${action}"}) { call_sub($action); return;