layerindex-web/layerindex
Paul Eggleton d215e2899a Fix axes lockout not working
We use django-axes to lock out IP addresses after a set number of
attempts at logging in, and separately we use django-reversion to
record change history. As part of the history tracking, the default
behaviour of django-reversion is to wrap all POST requests in
"with transaction.atomic()", with the result that if an exception is
raised any changes get rolled back; unfortunately when authentication
fails for the final time, axes updates the database and then raises
PermissionDenied - with the result that the database changes are rolled
back, and the user's IP is not locked out, in fact it can never be
locked out. To work around this, disable the atomic mode on
ReversionMiddleware using a subclass. (I don't like having to do this,
but this is the quickest solution for now.)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2019-07-17 11:31:04 +12:00
..
migrations Record configure options 2019-07-17 11:31:04 +12:00
static Add LICENSE texts for distributed components 2019-07-17 11:31:04 +12:00
templatetags Replace custom pagination with django-bootstrap-pagination 2019-07-17 11:31:04 +12:00
tools More shell quoting 2019-07-17 11:31:04 +12:00
__init__.py Initial commit of layerindex-web 2013-02-13 12:09:57 +00:00
admin.py admin: allow editing ClassicRecipe fields 2019-07-17 11:31:04 +12:00
auth_forms.py Add user security questions 2019-07-17 11:30:56 +12:00
auth_views.py Disable caching on auth views 2019-07-17 11:31:01 +12:00
bulkchange.py Use try...finally or with to ensure files get closed 2019-02-14 10:05:53 +13:00
context_processors.py Add ability to hide branches 2019-07-17 11:30:56 +12:00
forms.py Add ability to disposition comparison patches 2019-07-17 11:31:04 +12:00
layerconfparse.py layerconfparse.py: remove unused layerbranch from parse_layer() 2017-07-21 08:14:57 +02:00
middleware.py Fix axes lockout not working 2019-07-17 11:31:04 +12:00
models.py Record configure options 2019-07-17 11:31:04 +12:00
querysethelper.py Replace usage of model._meta.get_all_field_names() 2018-04-24 10:15:47 +12:00
recipedesc.py layerindex: Update tinfoil to call shutdown method 2017-01-11 21:56:35 +13:00
recipeparse.py Split out recipe dependency handling to its own function 2019-07-17 11:30:56 +12:00
restperm.py expose REST API for layerindex 2014-09-24 11:32:34 +01:00
restviews.py restviews: add additional layer view with extra nested fields 2018-02-07 11:27:48 +13:00
securityquestions.py Add user security questions 2019-07-17 11:30:56 +12:00
tasks.py More shell quoting 2019-07-17 11:31:04 +12:00
update_layer.py Record configure options 2019-07-17 11:31:04 +12:00
update.py Use shell=False where possible with utils.runcmd() 2019-07-17 11:31:01 +12:00
urls_branch.py Add ability to trigger comparison updates manually from UI 2018-08-13 16:04:14 +02:00
urls.py layerindex/urls.py: improve formatting 2019-07-17 11:30:56 +12:00
utils.py Try to make running background commands more responsive 2019-07-17 11:31:04 +12:00
views.py Add a workaround for ConnectionResetErrors in task_log_view() 2019-07-17 11:31:04 +12:00