my $password = $userinfo->{password};
my $role = $userinfo->{role} || 'user';
+ if ($userinfo->{sub}) {
+ $username = $userinfo->{sub};
+ }
+
throw( "No username given" ) unless $username;
throw( "Invalid password - must be at least " . $self->MIN_PASS_LEN
. " characters long" )
- unless ( $self->validate_password($password) || $username =~ /^https?:/ );
+ unless ( $self->validate_password($password) || $username =~ /^https?:/ || exists ($userinfo->{openid_id}) || exists ($userinfo->{sub}));
my $user = Text::Tradition::User->new(
id => $username,
});
if (!$user) {
- throw ("Could not find a user with that openid or sub!");
+ return undef;
}
my $new_user = $self->add_user({
password => $user->password,
role => $user->role,
active => $user->active,
+ sub => $sub,
+ openid_id => $openid,
});
foreach my $t (@{ $user->traditions }) {