- 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;
|