Compatibility with different session backend + admin layout
This commit is contained in:
@ -20,7 +20,7 @@ import models
|
||||
class UserCredential(forms.Form):
|
||||
"""Form used on the login page to retrive user credentials"""
|
||||
username = forms.CharField(label=_('login'))
|
||||
service = forms.CharField(widget=forms.HiddenInput(), required=False)
|
||||
service = forms.CharField(label=_('service'), widget=forms.HiddenInput(), required=False)
|
||||
password = forms.CharField(label=_('password'), widget=forms.PasswordInput)
|
||||
lt = forms.CharField(widget=forms.HiddenInput(), required=False)
|
||||
method = forms.CharField(widget=forms.HiddenInput(), required=False)
|
||||
@ -34,12 +34,17 @@ class UserCredential(forms.Form):
|
||||
cleaned_data = super(UserCredential, self).clean()
|
||||
auth = utils.import_attr(settings.CAS_AUTH_CLASS)(cleaned_data.get("username"))
|
||||
if auth.test_password(cleaned_data.get("password")):
|
||||
session = utils.get_session(self.request)
|
||||
try:
|
||||
user = models.User.objects.get(username=auth.username, session=session)
|
||||
user = models.User.objects.get(
|
||||
username=auth.username,
|
||||
session_key=self.request.session_key
|
||||
)
|
||||
user.save()
|
||||
except models.User.DoesNotExist:
|
||||
user = models.User.objects.create(username=auth.username, session=session)
|
||||
user = models.User.objects.create(
|
||||
username=auth.username,
|
||||
session_key=self.request.session_key
|
||||
)
|
||||
user.save()
|
||||
else:
|
||||
raise forms.ValidationError(_(u"Bad user"))
|
||||
@ -50,4 +55,4 @@ class TicketForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = models.Ticket
|
||||
exclude = []
|
||||
service = forms.CharField(widget=forms.TextInput)
|
||||
service = forms.CharField(label=_('service'), widget=forms.TextInput)
|
||||
|
Reference in New Issue
Block a user