From: Moritz Bunkus Date: Fri, 5 Jun 2009 10:18:41 +0000 (+0000) Subject: Im Administrationsfrontend eine Möglichkeit zum Duplizieren von existierenden Benutze... X-Git-Tag: release-2.6.1beta1~417 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=588772c3c02c44d67cb8672749bac5f2689c2c3c;p=kivitendo-erp.git Im Administrationsfrontend eine Möglichkeit zum Duplizieren von existierenden Benutzern eingebaut. Fix für Bug 1025. --- 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; diff --git a/locale/de/admin b/locale/de/admin index 86e7dc939..e48b858d1 100644 --- a/locale/de/admin +++ b/locale/de/admin @@ -13,6 +13,7 @@ $self->{texts} = { 'Administration' => 'Administration', 'Advance turnover tax return' => 'Umsatzsteuervoranmeldung', 'All reports' => 'Alle Berichte (Kontenübersicht, Summen- u. Saldenliste, GuV, BWA, Bilanz, Projektbuchungen)', + 'Another user with the login #1 does already exist.' => 'Es existiert bereits ein anderer Benutzer mit diesem Login.', 'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.', 'Authentification database creation' => 'Anlegen der Datenbank zur Benutzerauthentifizierung', 'Authentification tables creation' => 'Anlegen der Tabellen zur Benutzerauthentifizierung', @@ -192,7 +193,6 @@ $self->{texts} = { 'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Fehlende Parameter in "LDAP_config". Benötigt werden "host", "attribute" und "base_dn".', 'customer' => 'Kunde', 'invoice' => 'Rechnung', - 'is already a member!' => 'ist bereits ein Mitglied!', 'no' => 'nein', 'packing_list' => 'Versandliste', 'pick_list' => 'Entnahmeliste', @@ -271,6 +271,7 @@ $self->{subs} = { 'save_group' => 'save_group', 'save_group_membership' => 'save_group_membership', 'save_user' => 'save_user', + 'save_user_as_new' => 'save_user_as_new', 'select_part' => 'select_part', 'select_part_internal' => 'select_part_internal', 'set_longdescription' => 'set_longdescription', diff --git a/locale/de/all b/locale/de/all index c146e2286..da1f6a913 100644 --- a/locale/de/all +++ b/locale/de/all @@ -172,6 +172,7 @@ $self->{texts} = { 'Amount' => 'Betrag', 'Amount Due' => 'Betrag fällig', 'Annotations' => 'Anmerkungen', + 'Another user with the login #1 does already exist.' => 'Es existiert bereits ein anderer Benutzer mit diesem Login.', 'Ansprechpartner' => 'Ansprechpartner', 'Ap aging on %s' => 'Offene Verbindlichkeiten zum %s', 'Application Error. No Format given' => 'Fehler in der Anwendung. Das Ausgabeformat fehlt.', @@ -1113,6 +1114,7 @@ $self->{texts} = { 'Please ask your administrator to create warehouses and bins.' => 'Bitten Sie Ihren Administrator, dass er Lager und Lagerplätze anlegt.', 'Please enter a license key.' => 'Bitte geben Sie einen Lizenzschlüssel an.', 'Please enter a number of licenses.' => 'Bitte geben Sie die Anzahl Lizenzschlüssel an.', + 'Please enter the login for the new user.' => 'Bitte geben Sie das Login für den neuen Benutzer ein.', 'Please enter the name of the database that will be used as the template for the new database:' => 'Bitte geben Sie den Namen der Datenbank an, die als Vorlage für die neue Datenbank benutzt wird:', 'Please enter the name of the dataset you want to restore the backup in.' => 'Bitte geben Sie den Namen der Datenbank ein, in der Sie die Sicherung wiederherstellen wollen.', 'Please enter the taxnumber in the administration menu userpreferences' => 'Bitte bei den Einstellungen des aktuellen Benutzers im Administrationsmodul @@ -1820,7 +1822,6 @@ $self->{texts} = { 'history search engine' => 'Historien Suchmaschine', 'invoice' => 'Rechnung', 'invoice_list' => 'debitorenbuchungsliste', - 'is already a member!' => 'ist bereits ein Mitglied!', 'lead deleted!' => 'Kundenquelle gelöscht', 'lead saved!' => 'Kundenquelle geichert', 'list' => 'auflisten', diff --git a/templates/webpages/admin/edit_user_de.html b/templates/webpages/admin/edit_user_de.html index 121e39576..ebe3a9905 100644 --- a/templates/webpages/admin/edit_user_de.html +++ b/templates/webpages/admin/edit_user_de.html @@ -1,6 +1,7 @@ [% USE HTML %] + -
+
[% title %]
@@ -29,7 +30,13 @@ - + @@ -280,14 +287,37 @@ - + + [% IF edit %] - + [% FOREACH row = GROUPS %] + + [% END %] + + + + [% END %] + + diff --git a/templates/webpages/admin/edit_user_master.html b/templates/webpages/admin/edit_user_master.html index 2b4eac3cd..bb89a5a27 100644 --- a/templates/webpages/admin/edit_user_master.html +++ b/templates/webpages/admin/edit_user_master.html @@ -1,6 +1,7 @@ [% USE HTML %] + - +
[% title %]
@@ -29,7 +30,13 @@
Anmeldung[% IF edit %][% HTML.escape(myc_login) %][% ELSE %][% END %] + [%- IF edit %] + [% HTML.escape(myc_login) %] + [%- ELSE %] + + [%- END %] +
- + @@ -280,14 +287,37 @@ - + + [% IF edit %] - + [% FOREACH row = GROUPS %] + + [% END %] + + + + [% END %] + +
Login[% IF edit %][% HTML.escape(myc_login) %][% ELSE %][% END %] + [%- IF edit %] + [% HTML.escape(myc_login) %] + [%- ELSE %] + + [%- END %] +