Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package SpadeCrypt::User;
- use Base;
- use base 'SpadeCrypt::Base';
- sub check_args
- {
- my $self = shift;
- my $args = shift;
- # TODO: log error?
- die("Illegal characters in username\n") unless ($self->arg('username') =~ /^[\w\d]+$/);
- $self->{username} = $self->arg('username');
- }
- sub setup
- {
- my $self = shift;
- $self->get_user;
- }
- sub get_user
- {
- my $self = shift;
- # pull user info if possible
- $sth = $self->db->prepare("SELECT * FROM users WHERE username=?");
- $sth->execute($self->{username});
- $r = $sth->fetchrow_hashref;
- $sth->finish;
- $self->{id} = $r->{id};
- $self->{password} = $r->{password};
- $self->{email} = $r->{email};
- $self->{quota} = $r->{quota};
- $self->{fname} = $r->{fname};
- $self->{lname} = $r->{lname};
- }
- sub exists
- {
- my $self = shift;
- # see if user info was pulled
- # used to see if create_user should be called
- return defined $self->{id};
- }
- sub create
- {
- my $self = shift;
- my $password = whirlpool(shift);
- my $email = shift;
- my $quota = int(shift);
- my $fname = shift;
- my $lname = shift;
- my $sth = $self->db->prepare("SELECT username FROM users WHERE username=?");
- $sth->execute($self->{username});
- my $r = $sth->fetchrow_hashref;
- $sth->finish;
- if(not defined $r->{username}) {
- my $sth = $self->db->prepare("INSERT INTO users VALUES (NULL, ?, ?, ?, ?, ?, ?)");
- $sth->execute($password, $email, $quota, $fname, $lname, $self->{username});
- $sth->finish;
- # populate our object
- $self->get_user;
- if($self->exists) {
- $self->log->info("User $self->{username} created");
- } else {
- $self->log->error("Error creating user $self->{username}");
- die("Error creating user $self->{username}");
- }
- } else {
- $self->log->error("User $self->{username} already exists");
- die("User $username already exists");
- }
- }
- 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement