[Jifty-commit] r3315 -
jifty/trunk/lib/Jifty/Plugin/OpenID/Mixin/Model
jifty-commit at lists.jifty.org
jifty-commit at lists.jifty.org
Fri Jun 1 15:58:35 EDT 2007
Author: clkao
Date: Fri Jun 1 15:58:34 2007
New Revision: 3315
Modified:
jifty/trunk/lib/Jifty/Plugin/OpenID/Mixin/Model/User.pm
Log:
openid related methods.
Modified: jifty/trunk/lib/Jifty/Plugin/OpenID/Mixin/Model/User.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/OpenID/Mixin/Model/User.pm (original)
+++ jifty/trunk/lib/Jifty/Plugin/OpenID/Mixin/Model/User.pm Fri Jun 1 15:58:34 2007
@@ -18,4 +18,47 @@
sub has_alternative_auth { 1 }
+
+use URI;
+
+sub validate_openid {
+ my $self = shift;
+ my $openid = shift;
+
+ my $uri = URI->new( $openid );
+
+ return ( 0, q{That doesn't look like an OpenID URL.} )
+ if not defined $uri;
+
+ my $temp_user = Doxory::Model::User->new;
+ $temp_user->load_by_cols( openid => $uri->canonical );
+
+ # It's ok if *we* have the openid we're looking for
+ return ( 0, q{It looks like somebody else has claimed that OpenID.} )
+ if $temp_user->id and ( not $self->id or $temp_user->id != $self->id );
+
+ return 1;
+}
+
+sub canonicalize_openid {
+ my $self = shift;
+ my $openid = shift;
+
+ return ''
+ if not defined $openid or not length $openid;
+
+ $openid = 'http://' . $openid
+ if $openid !~ m{^http://};
+
+ my $uri = URI->new( $openid );
+
+ return $uri->canonical;
+}
+
+sub link_to_openid {
+ my $self = shift;
+ my $openid = shift;
+ $self->__set( column => 'openid', value => $openid );
+}
+
1;
More information about the Jifty-commit
mailing list