mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
Make password_auth_enabled() take a realm object
This will actually be used in an upcoming commit. (imported from commit 5d3db685a245899b2523440398f2ed2f0cfec4f4)
This commit is contained in:
@@ -5,6 +5,10 @@ import ujson
|
|||||||
from zproject.backends import password_auth_enabled
|
from zproject.backends import password_auth_enabled
|
||||||
|
|
||||||
def add_settings(request):
|
def add_settings(request):
|
||||||
|
if hasattr(request.user, "realm"):
|
||||||
|
is_pw_auth_enabled = password_auth_enabled(request.user.realm)
|
||||||
|
else:
|
||||||
|
is_pw_auth_enabled = True
|
||||||
return {
|
return {
|
||||||
'full_navbar': settings.FULL_NAVBAR,
|
'full_navbar': settings.FULL_NAVBAR,
|
||||||
# We use the not_enterprise variable name so that templates
|
# We use the not_enterprise variable name so that templates
|
||||||
@@ -12,7 +16,7 @@ def add_settings(request):
|
|||||||
# to the template
|
# to the template
|
||||||
'not_enterprise': not settings.ENTERPRISE,
|
'not_enterprise': not settings.ENTERPRISE,
|
||||||
'zulip_admin': settings.ZULIP_ADMINISTRATOR,
|
'zulip_admin': settings.ZULIP_ADMINISTRATOR,
|
||||||
'password_auth_enabled': password_auth_enabled(),
|
'password_auth_enabled': is_pw_auth_enabled,
|
||||||
'login_url': settings.HOME_NOT_LOGGED_IN,
|
'login_url': settings.HOME_NOT_LOGGED_IN,
|
||||||
'only_sso': settings.ONLY_SSO,
|
'only_sso': settings.ONLY_SSO,
|
||||||
'external_api_path': settings.EXTERNAL_API_PATH,
|
'external_api_path': settings.EXTERNAL_API_PATH,
|
||||||
|
|||||||
@@ -40,11 +40,14 @@ def not_mit_mailing_list(value):
|
|||||||
|
|
||||||
class RegistrationForm(forms.Form):
|
class RegistrationForm(forms.Form):
|
||||||
full_name = forms.CharField(max_length=100)
|
full_name = forms.CharField(max_length=100)
|
||||||
if password_auth_enabled():
|
# The required-ness of the password field gets overridden if it isn't
|
||||||
password = forms.CharField(widget=forms.PasswordInput, max_length=100)
|
# actually required for a realm
|
||||||
|
password = forms.CharField(widget=forms.PasswordInput, max_length=100,
|
||||||
|
required=False)
|
||||||
if not settings.ENTERPRISE:
|
if not settings.ENTERPRISE:
|
||||||
terms = forms.BooleanField(required=True)
|
terms = forms.BooleanField(required=True)
|
||||||
|
|
||||||
|
|
||||||
class ToSForm(forms.Form):
|
class ToSForm(forms.Form):
|
||||||
full_name = forms.CharField(max_length=100)
|
full_name = forms.CharField(max_length=100)
|
||||||
terms = forms.BooleanField(required=True)
|
terms = forms.BooleanField(required=True)
|
||||||
|
|||||||
@@ -336,9 +336,11 @@ def accounts_register(request):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
form = RegistrationForm(postdata)
|
form = RegistrationForm(postdata)
|
||||||
|
if not password_auth_enabled(realm):
|
||||||
|
form['password'].field.required = False
|
||||||
|
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
if password_auth_enabled():
|
if password_auth_enabled(realm):
|
||||||
password = form.cleaned_data['password']
|
password = form.cleaned_data['password']
|
||||||
else:
|
else:
|
||||||
# SSO users don't need no passwords
|
# SSO users don't need no passwords
|
||||||
@@ -379,7 +381,11 @@ def accounts_register(request):
|
|||||||
'email': email,
|
'email': email,
|
||||||
'key': key,
|
'key': key,
|
||||||
'full_name': request.session.get('authenticated_full_name', None),
|
'full_name': request.session.get('authenticated_full_name', None),
|
||||||
'lock_name': name_validated and name_changes_disabled(realm)
|
'lock_name': name_validated and name_changes_disabled(realm),
|
||||||
|
# password_auth_enabled is normally set via our context processor,
|
||||||
|
# but for the registration form, there is no logged in user yet, so
|
||||||
|
# we have to set it here.
|
||||||
|
'password_auth_enabled': password_auth_enabled(realm),
|
||||||
},
|
},
|
||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
@@ -869,7 +875,7 @@ def home(request):
|
|||||||
test_suite = settings.TEST_SUITE,
|
test_suite = settings.TEST_SUITE,
|
||||||
poll_timeout = settings.POLL_TIMEOUT,
|
poll_timeout = settings.POLL_TIMEOUT,
|
||||||
login_page = settings.HOME_NOT_LOGGED_IN,
|
login_page = settings.HOME_NOT_LOGGED_IN,
|
||||||
password_auth_enabled = password_auth_enabled(),
|
password_auth_enabled = password_auth_enabled(user_profile.realm),
|
||||||
have_initial_messages = user_has_messages,
|
have_initial_messages = user_has_messages,
|
||||||
subbed_info = register_ret['subscriptions'],
|
subbed_info = register_ret['subscriptions'],
|
||||||
unsubbed_info = register_ret['unsubscribed'],
|
unsubbed_info = register_ret['unsubscribed'],
|
||||||
@@ -1643,7 +1649,7 @@ def api_fetch_api_key(request, username=REQ, password=REQ):
|
|||||||
@authenticated_json_post_view
|
@authenticated_json_post_view
|
||||||
@has_request_variables
|
@has_request_variables
|
||||||
def json_fetch_api_key(request, user_profile, password=REQ(default='')):
|
def json_fetch_api_key(request, user_profile, password=REQ(default='')):
|
||||||
if password_auth_enabled() and not user_profile.check_password(password):
|
if password_auth_enabled(user_profile.realm) and not user_profile.check_password(password):
|
||||||
return json_error("Your username or password is incorrect.")
|
return json_error("Your username or password is incorrect.")
|
||||||
return json_success({"api_key": user_profile.api_key})
|
return json_success({"api_key": user_profile.api_key})
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from openid.consumer.consumer import SUCCESS
|
|||||||
from apiclient.sample_tools import client as googleapiclient
|
from apiclient.sample_tools import client as googleapiclient
|
||||||
from oauth2client.crypt import AppIdentityError
|
from oauth2client.crypt import AppIdentityError
|
||||||
|
|
||||||
def password_auth_enabled():
|
def password_auth_enabled(realm):
|
||||||
for backend in django.contrib.auth.get_backends():
|
for backend in django.contrib.auth.get_backends():
|
||||||
if isinstance(backend, EmailAuthBackend):
|
if isinstance(backend, EmailAuthBackend):
|
||||||
return True
|
return True
|
||||||
|
|||||||
Reference in New Issue
Block a user