|
package SL::DB::AuthUser;
|
|
|
|
use strict;
|
|
|
|
use List::Util qw(first);
|
|
|
|
use SL::DB::MetaSetup::AuthUser;
|
|
use SL::DB::Manager::AuthUser;
|
|
use SL::DB::Helper::Util;
|
|
|
|
use constant CONFIG_VARS => qw(copies countrycode dateformat timeformat default_media default_printer_id
|
|
email favorites fax hide_cvar_search_options mandatory_departments menustyle name
|
|
numberformat show_form_details signature stylesheet taxincluded_checked tel
|
|
template_format vclimit focus_position form_cvars_nr_cols item_multiselect);
|
|
|
|
__PACKAGE__->meta->add_relationship(
|
|
groups => {
|
|
type => 'many to many',
|
|
map_class => 'SL::DB::AuthUserGroup',
|
|
map_from => 'user',
|
|
map_to => 'group',
|
|
},
|
|
configs => {
|
|
type => 'one to many',
|
|
class => 'SL::DB::AuthUserConfig',
|
|
column_map => { id => 'user_id' },
|
|
},
|
|
clients => {
|
|
type => 'many to many',
|
|
map_class => 'SL::DB::AuthClientUser',
|
|
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');
|
|
|
|
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;
|