Aleksi Häkli
fadf8be191
Improve login failure database updates
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:56:01 +02:00
Aleksi Häkli
e69d479f6a
Refactor handlers to a more pluggable format
...
- Define a base handler API with method signatures
- Move proxy handler to a separate path for importability
- Implement a database handler with clean external dependencies
- Change the authentication backend and decorators to use the authentication backend
This enables clean pluggable authentication backend definitions that users
can override and specialize with e.g. cached handlers in their own packages.
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:57 +02:00
Aleksi Häkli
139a2b38fb
Update changelog and documentation
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:55 +02:00
Aleksi Häkli
3279ae1f4b
Fix CHANGES reference to Django LTS
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:53 +02:00
Aleksi Häkli
aec59a97bc
Fix mypy errors in the utils module
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:50 +02:00
Aleksi Häkli
a0b672be6e
Cleanup imports
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:49 +02:00
Aleksi Häkli
f8949ce984
Add configurable client IP attribute on requests
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:47 +02:00
Aleksi Häkli
b07a513b30
Cleanup for utils
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:45 +02:00
Aleksi Häkli
a4c4ba6fb7
Refactor utils and attempts internal API
...
Clean up internal implementations and tests while keeping the
APIs as similar as possible where feasible.
The goal of this change is to not change any documented
or stable APIs that might be in use by users, but to improve
the internal implementations for maintainability and usability.
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:41 +02:00
Aleksi Häkli
bc24d12975
Add support for string type AXES_USERNAME_CALLABLE
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:39 +02:00
Aleksi Häkli
97410a7b06
Clean up old test code
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:37 +02:00
Aleksi Häkli
9b0f664dcd
Remove redundant comment
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:34 +02:00
Aleksi Häkli
8b4c522f5b
Rename Axes appconfig startup method to initialize
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:22 +02:00
Aleksi Häkli
d1eb64679b
Add support for reconfiguring handlers in tests
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:17 +02:00
Aleksi Häkli
b120fc6fde
Remove redundant AccessAttempt.failures property
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 19:55:10 +02:00
Aleksi Häkli
c1ac9de894
Merge pull request #404 from jazzband/pytest
...
Use pytest for test runner
2019-02-22 08:56:01 +02:00
Aleksi Häkli
7152cf482d
Run coverage with pytest
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 08:30:11 +02:00
Aleksi Häkli
5a78d41828
Fix buggy test case and improve test speed
...
- Cool off time was overly long on a number of test
- Cool off time on test was fetched with the wrong method
resulting in bugs on non-integer second cool off values
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-22 07:58:28 +02:00
Aleksi Häkli
c17db16253
Use pytest for test runner
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-20 23:05:21 +02:00
Aleksi Häkli
11e02c8dfc
Merge pull request #403 from jazzband/pyup-scheduled-update-2019-02-18
...
Scheduled weekly dependency update for week 07
2019-02-18 23:07:49 +02:00
pyup-bot
cc1954209d
Update sphinx_rtd_theme from 0.4.2 to 0.4.3
2019-02-18 18:23:05 +02:00
Camilo Nova
ad2ed23ced
Merge pull request #400 from jazzband/development
...
Refactor attempt and handler implementations
2019-02-14 17:49:02 -05:00
Aleksi Häkli
6d83901031
Refactor attempt and handler implementations
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-13 20:39:44 +02:00
Aleksi Häkli
820ecca236
Add missing test case for disabled lockouts
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-13 20:22:16 +02:00
Aleksi Häkli
09fe330957
Fix test compatibility on Python 3.5
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-13 19:02:10 +02:00
Aleksi Häkli
cd56631865
Refactor attempts and add NEVER_LOCKOUT_GET flag
...
- Move cache and cool off utility functions to the axes.utils module
- Clean up axes.attempts duplicate code in attempt and cache calculations
- Add stable implementation for AccessAttempt attribute calculation
in the axes.attempts.get_filter_kwargs function
Fixes #398
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-13 18:20:04 +02:00
Aleksi Häkli
77103c42fe
Add type annotations to utils module
2019-02-13 14:06:55 +02:00
Aleksi Häkli
42fe9c15fa
Unify import styling to use from ... imports
2019-02-13 14:05:24 +02:00
Aleksi Häkli
8c73eed726
Introduce gradual typing with mypy
2019-02-13 01:14:26 +02:00
Aleksi Häkli
911de8f347
Refactor is_user_lockable
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-13 00:58:17 +02:00
Aleksi Häkli
c3e471a211
Improve handler tests
2019-02-13 00:04:50 +02:00
Aleksi Häkli
6240b20793
Clean up utils tests for get_client_username
2019-02-12 23:44:35 +02:00
Aleksi Häkli
df83adb059
Run more comprehensive prospector checks
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-12 23:33:18 +02:00
Aleksi Häkli
40a0eae647
Improve tests
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-12 23:22:52 +02:00
Aleksi Häkli
a926e74f5d
Add check for empty tuple in get_client_str
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-12 23:11:37 +02:00
Aleksi Häkli
1b1771d164
Rename CommonAccess to better name
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-12 23:11:18 +02:00
Aleksi Häkli
19f84c5daa
Clean up and unify imports
...
- Use consistent alphabetical import ordering across files
- Use axes.conf.settings for internally loading settings
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 22:06:04 +02:00
Aleksi Häkli
0b6d84762a
Remove deprecated Six usages
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 21:47:02 +02:00
Aleksi Häkli
5c2fa348ba
Update and clean up setup.py
...
- Use Python 3 syntax for file reads
- Use simpler keywords formatting
- Add Aleksi Hakli to authors listing
- Update maintainer to Jazzband
- Add cleaner project_urls
- Add Python 3.5+ version requirement
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 21:46:44 +02:00
Aleksi Häkli
fd963f38c1
Clean up Tox file formatting
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 20:52:00 +02:00
Aleksi Häkli
502434bbcb
Clean up logging initialization
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 20:51:38 +02:00
Aleksi Häkli
84ff56e8b1
Add Jazzband guidelines to README
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 20:51:29 +02:00
Aleksi Häkli
e3e69006a4
Improve management test branch coverage
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 20:05:02 +02:00
Aleksi Häkli
b8f417d485
Merge pull request #397 from jazzband/development
...
Version 5.0.0 draft
2019-02-10 19:53:41 +02:00
Aleksi Häkli
8859dde508
Modernize Django test setting types
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 19:40:51 +02:00
Aleksi Häkli
40a9b76772
Use a faster password hasher for testing
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 19:38:03 +02:00
Aleksi Häkli
6aa1ce1a8a
Raise minimum test coverage to 90%
...
As we aim for a stable production grade package
we should strive to have the code base tested
comprehensively to root out any bugs in the
implementations that are offered.
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 19:22:13 +02:00
Aleksi Häkli
fa7f35dda5
Add tests for the new components
...
Use mocks and test new backends, handlers and middleware
on an API call level, aiming for a 100% coverage on behaviour.
Also add tests for old decorators which are not covered
after moving the default authentication checks from them
to the authentication backends, middleware and signal handlers.
Fixes #323
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 19:22:13 +02:00
Aleksi Häkli
5fe339dce6
Rename management tests
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-10 19:22:13 +02:00
Aleksi Häkli
07e7c675bd
Configure Codecov parameters
...
Signed-off-by: Aleksi Häkli <aleksi.hakli@iki.fi>
2019-02-08 00:05:31 +02:00