Advertisement
Guest User

Untitled

a guest
Jul 5th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.65 KB | None | 0 0
  1. package SpadeCrypt::User;
  2. use Base;
  3. use base 'SpadeCrypt::Base';
  4.  
  5. sub check_args
  6. {
  7.     my $self = shift;
  8.     my $args = shift;
  9.  
  10.     # TODO: log error?                                                                                                                                      
  11.     die("Illegal characters in username\n") unless ($self->arg('username') =~ /^[\w\d]+$/);
  12.  
  13.     $self->{username} = $self->arg('username');
  14. }
  15.  
  16. sub setup
  17. {
  18.     my $self = shift;
  19.  
  20.     $self->get_user;
  21. }
  22.  
  23. sub get_user
  24. {  
  25.     my $self = shift;
  26.  
  27.     # pull user info if possible                                                                                                                            
  28.     $sth = $self->db->prepare("SELECT * FROM users WHERE username=?");
  29.     $sth->execute($self->{username});
  30.     $r = $sth->fetchrow_hashref;
  31.     $sth->finish;
  32.  
  33.     $self->{id}       = $r->{id};
  34.     $self->{password} = $r->{password};
  35.     $self->{email}    = $r->{email};
  36.     $self->{quota}    = $r->{quota};
  37.     $self->{fname}    = $r->{fname};
  38.     $self->{lname}    = $r->{lname};
  39. }
  40.  
  41. sub exists
  42. {
  43.     my $self = shift;
  44.  
  45.     # see if user info was pulled                                                                                                                            
  46.     # used to see if create_user should be called                                                                                                            
  47.     return defined $self->{id};
  48. }
  49.  
  50. sub create
  51. {
  52.     my $self     = shift;
  53.     my $password = whirlpool(shift);
  54.     my $email    = shift;
  55.     my $quota    = int(shift);
  56.     my $fname    = shift;
  57.     my $lname    = shift;
  58.  
  59.     my $sth = $self->db->prepare("SELECT username FROM users WHERE username=?");
  60.     $sth->execute($self->{username});
  61.     my $r = $sth->fetchrow_hashref;
  62.     $sth->finish;
  63.  
  64.     if(not defined $r->{username}) {
  65.         my $sth = $self->db->prepare("INSERT INTO users VALUES (NULL, ?, ?, ?, ?, ?, ?)");
  66.         $sth->execute($password, $email, $quota, $fname, $lname, $self->{username});
  67.         $sth->finish;
  68.  
  69.         # populate our object                                                                                                                                
  70.         $self->get_user;
  71.         if($self->exists) {
  72.             $self->log->info("User $self->{username} created");
  73.         } else {
  74.             $self->log->error("Error creating user $self->{username}");
  75.             die("Error creating user $self->{username}");
  76.         }
  77.     } else {
  78.         $self->log->error("User $self->{username} already exists");
  79.         die("User $username already exists");
  80.     }
  81. }
  82.  
  83. 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement