1 package Text::Tradition::UserStore;
7 use KiokuX::User::Util qw(crypt_password);
9 extends 'KiokuX::Model';
11 use Text::Tradition::User;
13 has MIN_PASS_LEN => ( is => 'ro', isa => 'Num', default => sub { 8 } );
15 # has 'directory' => (
17 # isa => 'KiokuX::Model',
21 ## To die or not to die, on error, this is the question.
23 my ($self, $userinfo) = @_;
24 my $username = $userinfo->{username};
25 my $password = $userinfo->{password};
27 return unless $username && $self->validate_password($password);
29 my $user = Text::Tradition::User->new(
31 password => crypt_password($password),
34 my $scope = $self->new_scope;
35 $self->store($user->kiokudb_object_id, $user);
41 my ($self, $userinfo) = @_;
42 my $username = $userinfo->{username};
44 return $self->lookup(Text::Tradition::User->id_for_user($username));
49 my ($self, $userinfo) = @_;
50 my $username = $userinfo->{username};
51 my $password = $userinfo->{password};
53 return unless $username && $self->validate_password($password);
55 my $user = $self->find_user({ username => $username });
58 my $scope = $self->new_scope;
59 $user->password(crypt_password($password));
70 sub validate_password {
71 my ($self, $password) = @_;
74 return if length($password) < $self->MIN_PASS_LEN;