]> git.parisson.com Git - django-social-auth.git/commitdiff
Merging with latest head; Yandex OpenID 2.0 support added - no need to specify Yandex...
authorStas Kravets <skravets@applebough.(none)>
Mon, 4 Apr 2011 08:27:21 +0000 (12:27 +0400)
committerStas Kravets <skravets@applebough.(none)>
Mon, 4 Apr 2011 08:27:21 +0000 (12:27 +0400)
example/templates/home.html
setup.py
social_auth/backends/contrib/yandex.py

index 56dd162ff2837e15a2d3330291b69a1ae46b7848..48ec11f7a586cede6ed703f17ac26db552440659 100644 (file)
@@ -38,7 +38,7 @@
     <li>
       <form action="{% url begin "yandex" %}" method="post">{% csrf_token %}
         <div>
-          <label for="openid_ya_user">Yandex user:</label>
+          <label for="openid_ya_user">Yandex user:(optional)</label>
           <input id="openid_ya_user" type="text" value="" name="openid_ya_user" />
           <input type="submit" value="Login"/>
         </div>
@@ -61,6 +61,7 @@
   <h3>Login using other authentication systems:</h3>
        <ul>
                <li><a rel="nofollow" href="{% url begin "vkontakte" %}">VKontakte OpenAPI</a></li>
+               <li><a rel="nofollow" href="{% url begin "yandex" %}">Yandex OpenID 2.0</a></li>
        </ul>
 </div>
 {% endblock %}
index 0919265a79148fce55560527cbcb481b47fcf818..c98508d4f5e822de6a663a2336e87dcd56b8f776 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -36,7 +36,8 @@ setup(name='django-social-auth',
                 'social_auth.backends',
                 'social_auth.backends.contrib'],
       long_description=long_description(),
-      install_requires=['oauth2>=1.5.167',
+      install_requires=['django>=1.2.5',
+                        'oauth2>=1.5.167',
                         'python_openid>=2.2'],
       classifiers=['Framework :: Django',
                    'Development Status :: 4 - Beta',
index 15e4e72137f81090881e3671081f09878ef0a58c..5155d094799025b4a3a7e6e444be347ae7b2b32d 100644 (file)
@@ -3,6 +3,8 @@ Yandex OpenID support.
 
 This contribution adds support for Yandex.ru OpenID service in the form
 openid.yandex.ru/user. Username is retrieved from the identity url.
+
+If username is not specified, OpenID 2.0 url used for authentication.
 """
 import urlparse
 
@@ -12,6 +14,7 @@ from social_auth.backends import OpenIDBackend, OpenIdAuth, USERNAME
 # Yandex conf
 YANDEX_URL = 'http://openid.yandex.ru/%s'
 YANDEX_USER_FIELD = 'openid_ya_user'
+YANDEX_OID_2_URL = 'http://yandex.ru'
 
 
 class YandexBackend(OpenIDBackend):
@@ -25,7 +28,6 @@ class YandexBackend(OpenIDBackend):
                            urlparse.urlsplit(response.identity_url)\
                                    .path.strip('/')
                                    
-        values['email'] = values.get('email') or values[USERNAME] + '@yandex.ru'
         return values
 
 
@@ -36,8 +38,9 @@ class YandexAuth(OpenIdAuth):
     def openid_url(self):
         """Returns Yandex authentication URL"""
         if YANDEX_USER_FIELD not in self.data:
-            raise ValueError, 'Missing Yandex user identifier'
-        return YANDEX_URL % self.data[YANDEX_USER_FIELD]
+            return YANDEX_OID_2_URL
+        else:
+            return YANDEX_URL % self.data[YANDEX_USER_FIELD]
     
 # Backend definition
 BACKENDS = {