forked from shaba/openuds
This commit is contained in:
parent
0303fbf910
commit
eea75c1736
@ -55,6 +55,7 @@ class IPAuth(Authenticator):
|
||||
groupNameLabel = _('IP Range')
|
||||
isExternalSource = True
|
||||
|
||||
blockUserOnLoginFailures = False
|
||||
|
||||
def initialize(self, values):
|
||||
pass
|
||||
|
@ -135,6 +135,9 @@ class Authenticator(Module):
|
||||
#: an already existing user.
|
||||
passwordLabel = translatable('Password')
|
||||
|
||||
#: If this authenticators casues a temporal block of an user on repeated login failures
|
||||
blockUserOnLoginFailures = True
|
||||
|
||||
from User import User
|
||||
from Group import Group
|
||||
|
||||
|
@ -735,10 +735,11 @@ class UserInterface(object):
|
||||
'''
|
||||
dic = {}
|
||||
for k, v in self._gui.iteritems():
|
||||
if v.isType(gui.InputField.EDITABLE_LIST):
|
||||
if v.isType(gui.InputField.EDITABLE_LIST) or v.isType(gui.InputField.MULTI_CHOICE_TYPE):
|
||||
dic[k] = gui.convertToChoices(v.value)
|
||||
else:
|
||||
dic[k] = v.value
|
||||
logger.debug('Dict: {0}'.format(dic))
|
||||
return dic
|
||||
|
||||
|
||||
@ -755,11 +756,12 @@ class UserInterface(object):
|
||||
'''
|
||||
arr = []
|
||||
for k, v in self._gui.iteritems():
|
||||
logger.debug('serializing Key: {0}'.format(k))
|
||||
logger.debug('serializing Key: {0}/{1}'.format(k, v.value))
|
||||
if v.isType(gui.InputField.HIDDEN_TYPE) and v.isSerializable() is False:
|
||||
logger.debug('Field {0} is not serializable'.format(k))
|
||||
continue
|
||||
if v.isType(gui.InputField.EDITABLE_LIST):
|
||||
if v.isType(gui.InputField.EDITABLE_LIST) or v.isType(gui.InputField.MULTI_CHOICE_TYPE):
|
||||
logger.debug('Serializing value {0}'.format(v.value))
|
||||
val = '\001' + cPickle.dumps(v.value)
|
||||
else:
|
||||
val = v.value
|
||||
@ -792,7 +794,7 @@ class UserInterface(object):
|
||||
if self._gui.has_key(k):
|
||||
try:
|
||||
if v[0] == '\001':
|
||||
val = cPickle.loads(v[1:])
|
||||
val = cPickle.loads(v[1:].encode('utf-8'))
|
||||
else:
|
||||
val = v
|
||||
except:
|
||||
@ -820,4 +822,5 @@ class UserInterface(object):
|
||||
res = []
|
||||
for key, val in cls._gui.iteritems():
|
||||
res.append( { 'name' : key, 'gui' : val.guiDescription(), 'value' : '' }, )
|
||||
|
||||
return res
|
||||
|
@ -96,7 +96,7 @@ def login(request, smallName=None):
|
||||
tries = cache.get(cacheKey)
|
||||
if tries is None:
|
||||
tries = 0
|
||||
if tries >= GlobalConfig.MAX_LOGIN_TRIES.getInt():
|
||||
if authenticator.getInstance().blockUserOnLoginFailures is True and tries >= GlobalConfig.MAX_LOGIN_TRIES.getInt():
|
||||
form.add_form_error('Too many authentication errors. User temporarily blocked.')
|
||||
authLogLogin(request, authenticator, userName, java, os, 'Temporarily blocked')
|
||||
else:
|
||||
|
@ -114,11 +114,15 @@ def getServiceGui(credentials, idParent, type):
|
||||
'''
|
||||
Returns the description of an gui for the specified service provider
|
||||
'''
|
||||
try:
|
||||
logger.debug('getServiceGui parameters: {0}, {1}'.format(idParent, type))
|
||||
provider = Provider.objects.get(id=idParent).getInstance()
|
||||
serviceType = provider.getServiceByType(type)
|
||||
service = serviceType( Environment.getTempEnv(), provider) # Instantiate it so it has the opportunity to alter gui description based on parent
|
||||
return service.guiDescription(service)
|
||||
except:
|
||||
logger.exception('Exception at getServiceGui')
|
||||
raise
|
||||
|
||||
@needs_credentials
|
||||
def getService(credentials, id):
|
||||
|
Loading…
Reference in New Issue
Block a user