1 package SL::DB::AuthUser;
 
   5 use List::Util qw(first);
 
   7 use SL::DB::MetaSetup::AuthUser;
 
   8 use SL::DB::Manager::AuthUser;
 
   9 use SL::DB::AuthClient;
 
  10 use SL::DB::AuthUserGroup;
 
  11 use SL::DB::Helper::Util;
 
  13 __PACKAGE__->meta->add_relationship(
 
  15     type      => 'many to many',
 
  16     map_class => 'SL::DB::AuthUserGroup',
 
  21     type       => 'one to many',
 
  22     class      => 'SL::DB::AuthUserConfig',
 
  23     column_map => { id => 'user_id' },
 
  26     type      => 'many to many',
 
  27     map_class => 'SL::DB::AuthClientUser',
 
  33 __PACKAGE__->meta->initialize;
 
  39   push @errors, $::locale->text('The login is missing.')    if !$self->login;
 
  40   push @errors, $::locale->text('The login is not unique.') if !SL::DB::Helper::Util::is_unique($self, 'login');
 
  45 sub get_config_value {
 
  46   my ($self, $key) = @_;
 
  48   my $cfg = first { $_->cfg_key eq $key } @{ $self->configs || [] };
 
  49   return $cfg ? $cfg->cfg_value : undef;
 
  55   if (0 != scalar(@_)) {
 
  56     my %settings = (ref($_[0]) || '') eq 'HASH' ? %{ $_[0] } : @_;
 
  57     $self->configs([ map { SL::DB::AuthUserConfig->new(cfg_key => $_, cfg_value => $settings{$_}) } keys %settings ]);
 
  60   return { map { ($_->cfg_key => $_->cfg_value) } @{ $self->configs || [] } };