package LedgerSMB::DBObject::User;
use base qw/LedgerSMB::DBObject/;
use Data::Dumper;
sub save {
my $self = shift @_;
my $user = $self->get();
if ( $user->{id} && $self->{is_a_user} ) {
# doesn't check for the password - that's done in the sproc.
$self->{id} = shift @{ $self->exec_method(funcname=>'admin__save_user',
args=>[$user->{id}, $self->{username}, $self->{password}] ) };
if (!$self->{id}) {
return 0;
}
}
elsif ($user && !$self->{is_a_user}) {
# there WAS a user, and we've decided we want that user to go away now.
$self->{id} = $user->{id};
return $self->remove();
}
elsif ($self->{is_a_user}) {
# No user ID, meaning, creating a new one.
$self->{id} = shift @{ $self->exec_method(funcname=>'admin__save_user',
args=>[undef, $self->{username}, $self->{password}] ) };
}
return 1;
}
sub get {
my $self = shift @_;
my $id = shift;
my $user = @{ $self->exec_method(funcname=>'admin__get_user',
args=>[$id])}[0];
return $user;
}
sub remove {
my $self = shift;
my $code = $self->exec_method(funcname=>"admin__delete_user", args=>[$self->{id}, $self->{username}]);
$self->{id} = undef; # never existed..
return $code->[0];
}
sub save_prefs {
my $self = shift @_;
my $pref_id = $self->exec_method(funcname=>"admin__save_preferences",
args=>[
'language',
'stylesheet',
'printer',
'dateformat',
'numberformat'
]
);
}
sub get_all_users {
my $self = shift @_;
my @ret = $self->exec_method( funcname=>"user__get_all_users" );
$self->{users} = \@ret;
}
1;
/57/52/mailman.633.1594796901.1671.kpt11@lists.homebase.dk/hb'>