summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--askbot/conf/login_providers.py24
-rw-r--r--askbot/deps/django_authopenid/views.py10
-rw-r--r--askbot/skins/default/templates/authopenid/signin.html8
-rw-r--r--askbot/skins/default/templates/authopenid/signup_with_password.html107
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-->