summaryrefslogtreecommitdiff
path: root/LedgerSMB/DBObject/User.pm
diff options
context:
space:
mode:
authoraurynn_cmd <aurynn_cmd@4979c152-3d1c-0410-bac9-87ea11338e46>2007-10-17 23:16:35 +0000
committeraurynn_cmd <aurynn_cmd@4979c152-3d1c-0410-bac9-87ea11338e46>2007-10-17 23:16:35 +0000
commit9af6ae6be1019ea656a101dfe7b66709f82f68ca (patch)
tree524b0cb9de85fe3dc7adfdfa5c8c460d08f32731 /LedgerSMB/DBObject/User.pm
parentb31d6b0e52b43fd0a3a1b6bdc8d5579d8cc22b58 (diff)
Serious updates to the Admin controller;
Creation of a User controller/object - I would like to use this to save/load roles, as well. Creation of Person stored procs, Entity stored procs. Serious updates to the employee stored procs. git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1778 4979c152-3d1c-0410-bac9-87ea11338e46
Diffstat (limited to 'LedgerSMB/DBObject/User.pm')
-rw-r--r--LedgerSMB/DBObject/User.pm52
1 files changed, 52 insertions, 0 deletions
diff --git a/LedgerSMB/DBObject/User.pm b/LedgerSMB/DBObject/User.pm
new file mode 100644
index 00000000..62ae4e0b
--- /dev/null
+++ b/LedgerSMB/DBObject/User.pm
@@ -0,0 +1,52 @@
+package LedgerSMB::DBObject::User;
+
+use base qw/LedgerSMB::DBObject/;
+
+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} = @{ $self->exec_method(procname=>'admin_save_user',
+ args=>[$user->{id}, $self->{username}, $self->{password}] ) }[0];
+ else {
+
+ 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();
+
+ }
+ return 1;
+}
+
+sub get {
+
+ my $self = shift @_;
+
+ my ($user_id, $username) = @{ $self->exec_method(procname=>'admin_get_user',
+ args=>[$self->{id}])};
+
+ return {id=>$user_id, username=>$username};
+}
+
+sub remove {
+
+ my $self = shift;
+
+ my $code = $self->exec_method(procname=>"admin_delete_user", args=>[$self->{id}, $self->{username}]);
+ $self->{id} = undef; # never existed..
+
+ return $code->[0];
+}
+
+1; \ No newline at end of file