diff options
author | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2011-02-25 23:28:45 -0600 |
---|---|---|
committer | Adolfo Fitoria <adolfo.fitoria@gmail.com> | 2011-02-25 23:28:45 -0600 |
commit | 45b829b30d8cdbd75e862063fe5ea4638ede70fb (patch) | |
tree | 31d6120364bde4166b0c6d01ca4d12286426e24f | |
parent | 76ee42916fb6f503badc5e07a717eb5f7e68fc2c (diff) | |
download | askbot-45b829b30d8cdbd75e862063fe5ea4638ede70fb.tar.gz askbot-45b829b30d8cdbd75e862063fe5ea4638ede70fb.tar.bz2 askbot-45b829b30d8cdbd75e862063fe5ea4638ede70fb.zip |
fixing login and signup TODO: refactor template
-rw-r--r-- | askbot/conf/login_providers.py | 24 | ||||
-rw-r--r-- | askbot/deps/django_authopenid/views.py | 10 | ||||
-rw-r--r-- | askbot/skins/default/templates/authopenid/signin.html | 8 | ||||
-rw-r--r-- | askbot/skins/default/templates/authopenid/signup_with_password.html | 107 |
4 files changed, 136 insertions, 13 deletions
diff --git a/askbot/conf/login_providers.py b/askbot/conf/login_providers.py index b6e26353..ccc7468c 100644 --- a/askbot/conf/login_providers.py +++ b/askbot/conf/login_providers.py @@ -11,6 +11,22 @@ LOGIN_PROVIDERS = livesettings.ConfigurationGroup( _('External login providers configuration.') ) +settings.register( + livesettings.BooleanValue( + LOGIN_PROVIDERS, + 'PASSWORD_REGISTER_SHOW_PROVIDER_BUTTONS', + description=_('Show login proviers on Sign Up'), + ) +) + +settings.register( + livesettings.BooleanValue( + LOGIN_PROVIDERS, + 'DISPLAYLOCAL', + description=_('Always display local login and hide Askbot button.'), + ) +) + providers = (('SIGNIN_TWITTER_ENABLED', 'Activate Twitter'), ('SIGNIN_GOOGLE_ENABLED', 'Activate Google'), ('SIGNIN_LINKEDIN_ENABLED', 'Activate LinkedIn'), @@ -37,11 +53,3 @@ for key, value in providers: description=_(value), ) ) - -settings.register( - livesettings.BooleanValue( - LOGIN_PROVIDERS, - 'DISPLAYLOCAL', - description=_('Always display local login and hide Askbot button.'), - ) -) diff --git a/askbot/deps/django_authopenid/views.py b/askbot/deps/django_authopenid/views.py index b4bd14fc..679e03b4 100644 --- a/askbot/deps/django_authopenid/views.py +++ b/askbot/deps/django_authopenid/views.py @@ -834,8 +834,10 @@ def signup_with_password(request): """Create a password-protected account template: authopenid/signup_with_password.html """ + logging.debug(get_request_info(request)) next = get_next_url(request) + login_form = forms.LoginForm(initial = {'next': next}) #this is safe because second decorator cleans this field provider_name = request.REQUEST['login_provider'] @@ -915,9 +917,15 @@ def signup_with_password(request): ) email_feeds_form = askbot_forms.SimpleEmailSubscribeForm() logging.debug('printing legacy signup form') + + major_login_providers = util.get_major_login_providers() + minor_login_providers = util.get_minor_login_providers() context_data = { 'form': form, - 'email_feeds_form': email_feeds_form + 'email_feeds_form': email_feeds_form, + 'major_login_providers': major_login_providers.values(), + 'minor_login_providers': minor_login_providers.values(), + 'login_form': login_form } template = ENV.get_template('authopenid/signup_with_password.html') context = RequestContext(request, context_data) diff --git a/askbot/skins/default/templates/authopenid/signin.html b/askbot/skins/default/templates/authopenid/signin.html index 9b6fad3b..49b09b1a 100644 --- a/askbot/skins/default/templates/authopenid/signin.html +++ b/askbot/skins/default/templates/authopenid/signin.html @@ -66,7 +66,7 @@ </ul>
<ul class="login-icons small">
{% for login_provider in minor_login_providers %}
- {%if settings['SIGNIN_' + login_provider.name.upper() + '_ENABLED'] == True%}
+ {%if settings['SIGN_IN' + login_provider.name.upper() + '_ENABLED'] == True%}
<li>
<input
name="{{login_provider.name}}"
@@ -130,7 +130,7 @@ <p id="local_login_buttons">
<input class="submit-b" name="login_with_password" type="submit" value="{% trans %}Login{% endtrans %}" />
{% if settings.USE_LDAP_FOR_PASSWORD_LOGIN == False %}
- <a class="create-password-account" style="vertical-align:middle" href="{% url user_signup_with_password %}">{% trans %}Create a password-protected account{% endtrans %}</a>
+ <a class="create-password-account" style="vertical-align:middle" href="{% url user_signup_with_password %}?login_provider=local">{% trans %}Create a password-protected account{% endtrans %}</a>
{% endif %}
</p>
{% elif settings.USE_LDAP_FOR_PASSWORD_LOGIN == False %}
@@ -259,7 +259,7 @@ var siteName = '{{settings.APP_SHORT_NAME}}';
var provider_count = {{existing_login_methods|length}};
{% for login_provider in major_login_providers %}
- {%if settings[login_provider.name] == True%}
+ {%if settings['SIGNIN_' + login_provider.name.upper() + '_ENABLED'] == True%}
{% if login_provider.extra_token_name %}
extra_token_name['{{login_provider.name}}'] = '{{login_provider.extra_token_name}}';
{% endif %}
@@ -270,7 +270,7 @@ {% endif %}
{% endfor %}
{% for login_provider in minor_login_providers %}
- {%if settings[login_provider.name] == True%}
+ {%if settings['SIGNIN_' + login_provider.name.upper() + '_ENABLED'] == True%}
{% if login_provider.extra_token_name %}
extra_token_name['{{login_provider.name}}'] = '{{login_provider.extra_token_name}}';
{% endif %}
diff --git a/askbot/skins/default/templates/authopenid/signup_with_password.html b/askbot/skins/default/templates/authopenid/signup_with_password.html index 041633d6..dc4f88ac 100644 --- a/askbot/skins/default/templates/authopenid/signup_with_password.html +++ b/askbot/skins/default/templates/authopenid/signup_with_password.html @@ -1,8 +1,51 @@ {% extends "one_column_body.html" %} <!--signup.html--> {% block title %}{% spaceless %}{% trans %}Signup{% endtrans %}{% endspaceless %}{% endblock %} +{% block forestyle %} + <link rel="stylesheet" type="text/css" media="screen" href="{{"/jquery-openid/openid.css"|media}}"/> +{% endblock %} {% block content %} <h1>{% trans %}Create login name and password{% endtrans %}</h1> +{%if settings['PASSWORD_REGISTER_SHOW_PROVIDER_BUTTONS'] == True %} +<form id="signin-form" method="post" action="{% url user_signin %}"> + {{login_form.login_provider_name}} + <div id="login-icons"> + <ul class="login-icons large"> + {% for login_provider in major_login_providers %} + + {%if settings['SIGNIN_' + login_provider.name.upper() + '_ENABLED'] == True%} + <li> + <input + name="{{login_provider.name}}" + type="image" + class="{{login_provider.type}}" + src="{{login_provider.icon_media_path|media}}" + alt="{{login_provider.tooltip_text}}" + title="{{login_provider.tooltip_text}}" + /> + </li> + {%endif%} + {% endfor %} + </ul> + <ul class="login-icons small"> + {% for login_provider in minor_login_providers %} + {%if settings['SIGNIN_' + login_provider.name.upper() + '_ENABLED'] == True%} + <li> + <input + name="{{login_provider.name}}" + type="image" + class="{{login_provider.type}}" + src="{{login_provider.icon_media_path|media}}" + alt="{{login_provider.tooltip_text}}" + title="{{login_provider.tooltip_text}}" + /> + </li> + {%endif%} + {% endfor %} + </ul> + </div> + </form> +{%endif%} <p class="message">{% trans %}Traditional signup info{% endtrans %}</p> <form action="{% url user_signup_with_password %}" method="post" accept-charset="utf-8"> {{form.login_provider}} @@ -26,4 +69,68 @@ <a href="{% url user_signin %}">{% trans %}return to OpenID login{% endtrans %}</a></strong></div> </form> {% endblock %} +{% block endjs %} +{%if settings['PASSWORD_REGISTER_SHOW_PROVIDER_BUTTONS'] == True %} + <script type='text/javascript' src='{{"/js/jquery.validate.min.js"|media}}'></script> + <script type="text/javascript" src="{{"/jquery-openid/jquery.openid.js"|media}}"></script> + <script type="text/javascript"> + var extra_token_name = {}; + var create_pw_text = {}; + var change_pw_text = {}; + var authUrl = '/{% trans %}account/{% endtrans %}'; + var siteName = '{{settings.APP_SHORT_NAME}}'; + var provider_count = {{existing_login_methods|length}}; + {% for login_provider in major_login_providers %} + {%if settings['SIGNIN_' + login_provider.name.upper() + '_ENABLED'] == True %} + {% if login_provider.extra_token_name %} + extra_token_name['{{login_provider.name}}'] = '{{login_provider.extra_token_name}}'; + {% endif %} + {% if login_provider.type == 'password' %} + create_pw_text['{{login_provider.name}}'] = '{{login_provider.create_password_prompt}}'; + change_pw_text['{{login_provider.name}}'] = '{{login_provider.change_password_prompt}}'; + {% endif %} + {% endif %} + {% endfor %} + {% for login_provider in minor_login_providers %} + {%if settings['SIGNIN_' + login_provider.name.upper() + '_ENABLED'] == True%} + {% if login_provider.extra_token_name %} + extra_token_name['{{login_provider.name}}'] = '{{login_provider.extra_token_name}}'; + {% endif %} + {% if login_provider.type == 'password' %} + create_pw_text['{{login_provider.name}}'] = '{{login_provider.create_password_prompt}}'; + change_pw_text['{{login_provider.name}}'] = '{{login_provider.change_password_prompt}}'; + {% endif %} + {% endif %} + {% endfor %} + {% if user.is_authenticated() %} + var userIsAuthenticated = true; + {% else %} + var userIsAuthenticated = false; + {% endif %} + $("body").authenticator(); + {% if settings.DISPLAYLOCAL and settings.SIGNIN_LOCAL_ENABLED %} + $('input.password').attr({'style': 'display:none'}); + {%endif%} + </script> + {% if settings.FACEBOOK_KEY and settings.FACEBOOK_SECRET %} + <div id="fb-root"></div> + <script src="http://connect.facebook.net/en_US/all.js"></script> + <script> + $(document).ready(function(){ + if (typeof FB != 'undefined'){ + var ret = FB.init({appId: '{{settings.FACEBOOK_KEY}}', status: true, cookie: true, xfbml: true}); + FB.Event.subscribe('auth.sessionChange', function(response){ + if (response.session) { + // A user has logged in, and a new cookie has been saved + $('#signin-form').submit(); + } else { + // The user has logged out, and the cookie has been cleared + } + }); + }; + }); + </script> + {% endif %} +{% endif %} +{% endblock %} <!--end signup.html--> |