X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FAdmin.pm;h=bcc9436b744a7692d2c0d281e9c9d2078e17ee47;hb=267374ef8d99b9b802be53d07330d2fcb1886284;hp=fe7dac53139208aa9eb7a0fa1b3d43a91622e4c2;hpb=857242398f40610d90f52b83b2d4ac5e1d764b9f;p=kivitendo-erp.git diff --git a/SL/Controller/Admin.pm b/SL/Controller/Admin.pm index fe7dac531..bcc9436b7 100644 --- a/SL/Controller/Admin.pm +++ b/SL/Controller/Admin.pm @@ -135,6 +135,10 @@ sub action_save_user { my $props = delete($params->{config_values}) || { }; my $is_new = !$params->{id}; + # Assign empty arrays if the browser doesn't send those controls. + $params->{clients} ||= []; + $params->{groups} ||= []; + $self->user($is_new ? SL::DB::AuthUser->new : SL::DB::AuthUser->new(id => $params->{id})->load) ->assign_attributes(%{ $params }) ->config_values({ %{ $self->user->config_values }, %{ $props } }); @@ -206,6 +210,10 @@ sub action_save_client { my $params = delete($::form->{client}) || { }; my $is_new = !$params->{id}; + # Assign empty arrays if the browser doesn't send those controls. + $params->{groups} ||= []; + $params->{users} ||= []; + $self->client($is_new ? SL::DB::AuthClient->new : SL::DB::AuthClient->new(id => $params->{id})->load)->assign_attributes(%{ $params }); my @errors = $self->client->validate; @@ -278,6 +286,10 @@ sub action_save_group { my $params = delete($::form->{group}) || { }; my $is_new = !$params->{id}; + # Assign empty arrays if the browser doesn't send those controls. + $params->{clients} ||= []; + $params->{users} ||= []; + $self->group($is_new ? SL::DB::AuthGroup->new : SL::DB::AuthGroup->new(id => $params->{id})->load)->assign_attributes(%{ $params }); my @errors = $self->group->validate;