[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