X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/a5ba22d29e683629d731fc0bfdfb72719e59a0b9..9f9f93b3f869be5b187a7fe00327ed85f9a43b6c:/SL/DB/AuthUser.pm diff --git a/SL/DB/AuthUser.pm b/SL/DB/AuthUser.pm index 0d22be94f..a11248ec6 100644 --- a/SL/DB/AuthUser.pm +++ b/SL/DB/AuthUser.pm @@ -1,17 +1,14 @@ -# This file has been auto-generated only because it didn't exist. -# Feel free to modify it at will; it will not be overwritten automatically. - package SL::DB::AuthUser; use strict; +use List::Util qw(first); + use SL::DB::MetaSetup::AuthUser; +use SL::DB::Manager::AuthUser; +use SL::DB::AuthClient; use SL::DB::AuthUserGroup; - -# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all. -__PACKAGE__->meta->make_manager_class; - -__PACKAGE__->meta->schema('auth'); +use SL::DB::Helper::Util; __PACKAGE__->meta->add_relationship( groups => { @@ -25,8 +22,43 @@ __PACKAGE__->meta->add_relationship( class => 'SL::DB::AuthUserConfig', column_map => { id => 'user_id' }, }, + clients => { + type => 'many to many', + map_class => 'SL::DB::AuthUserClient', + map_from => 'user', + map_to => 'client', + }, ); __PACKAGE__->meta->initialize; +sub validate { + my ($self) = @_; + + my @errors; + push @errors, $::locale->text('The login is missing.') if !$self->login; + push @errors, $::locale->text('The login is not unique.') if !SL::DB::Helper::Util::is_unique($self, 'login'); + push @errors, "chunky bacon"; + + return @errors; +} + +sub get_config_value { + my ($self, $key) = @_; + + my $cfg = first { $_->cfg_key eq $key } @{ $self->configs }; + return $cfg ? $cfg->cfg_value : undef; +} + +sub config_values { + my $self = shift; + + if (0 != scalar(@_)) { + my %settings = (ref($_[0]) || '') eq 'HASH' ? %{ $_[0] } : @_; + $self->configs([ map { SL::DB::AuthUserConfig->new(cfg_key => $_, cfg_value => $settings{$_}) } keys %settings ]); + } + + return { map { ($_->cfg_key => $_->cfg_value) } @{ $self->configs } }; +} + 1;