From cba957f686dd5b3a0cc5d7a7f7af16bef5dafd0a Mon Sep 17 00:00:00 2001 From: Julio Rama Date: Thu, 13 Feb 2020 19:24:03 -0300 Subject: [PATCH 1/9] Fixed from_db_value method definition --- allaccess/fields.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/allaccess/fields.py b/allaccess/fields.py index 1cf13d5..e318d96 100644 --- a/allaccess/fields.py +++ b/allaccess/fields.py @@ -93,7 +93,7 @@ def __init__(self, *args, **kwargs): self.cipher = self.encryption_class() super(EncryptedField, self).__init__(*args, **kwargs) - def from_db_value(self, value, expression, connection, context): + def from_db_value(self, value, expression, connection): if value is None: return value value = force_bytes(value) From 79f4ef52ab74e2d22000fc0698534ba827e0964c Mon Sep 17 00:00:00 2001 From: Julio Rama Date: Thu, 13 Feb 2020 19:24:30 -0300 Subject: [PATCH 2/9] Removed python2 support in models.py --- allaccess/models.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/allaccess/models.py b/allaccess/models.py index 0e623bc..a8e0d0d 100644 --- a/allaccess/models.py +++ b/allaccess/models.py @@ -2,7 +2,6 @@ from django.conf import settings from django.db import models -from django.utils.encoding import python_2_unicode_compatible from .clients import get_client from .fields import EncryptedField @@ -15,7 +14,6 @@ def get_by_natural_key(self, name): return self.get(name=name) -@python_2_unicode_compatible class Provider(models.Model): "Configuration for OAuth provider." @@ -53,7 +51,6 @@ def get_by_natural_key(self, identifier, provider): return self.get(identifier=identifier, provider=provider) -@python_2_unicode_compatible class AccountAccess(models.Model): "Authorized remote OAuth provider." From 0b412e38dac90ba557e202017a3c44698cd1f3f1 Mon Sep 17 00:00:00 2001 From: Julio Rama Date: Thu, 13 Feb 2020 19:24:53 -0300 Subject: [PATCH 3/9] Fixed import of Django's reverse method --- allaccess/tests/custom/views.py | 2 +- allaccess/tests/test_views.py | 2 +- allaccess/views.py | 2 +- docs/customize-views.rst | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/allaccess/tests/custom/views.py b/allaccess/tests/custom/views.py index 3ba6ef0..1d832ad 100644 --- a/allaccess/tests/custom/views.py +++ b/allaccess/tests/custom/views.py @@ -4,7 +4,7 @@ import hashlib from django.contrib.auth import get_user_model -from django.core.urlresolvers import reverse +from django.urls import reverse from django.utils.encoding import smart_bytes, force_text from allaccess.views import OAuthRedirect, OAuthCallback diff --git a/allaccess/tests/test_views.py b/allaccess/tests/test_views.py index 1957fba..f5e463c 100644 --- a/allaccess/tests/test_views.py +++ b/allaccess/tests/test_views.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from django.test import override_settings, RequestFactory from .base import AllAccessTestCase, AccountAccess, get_user_model, skipIfCustomUser diff --git a/allaccess/views.py b/allaccess/views.py index 89ee432..3edf32f 100644 --- a/allaccess/views.py +++ b/allaccess/views.py @@ -7,7 +7,7 @@ from django.conf import settings from django.contrib import messages from django.contrib.auth import authenticate, login, get_user_model -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import Http404 from django.shortcuts import redirect from django.utils.encoding import smart_bytes, force_text diff --git a/docs/customize-views.rst b/docs/customize-views.rst index e5836f8..a53772a 100644 --- a/docs/customize-views.rst +++ b/docs/customize-views.rst @@ -284,7 +284,7 @@ the URL pattern. .. code-block:: python - from django.core.urlresolvers import reverse + from django.urls import reverse from allaccess.views import OAuthRedirect class AssociateRedirect(OAuthRedirect): From 3ebd9a4fcb3869d9d1e0db8910c0a42a15d4022d Mon Sep 17 00:00:00 2001 From: Julio Rama Date: Thu, 13 Feb 2020 20:05:26 -0300 Subject: [PATCH 4/9] Added backend to login() calls --- allaccess/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/allaccess/views.py b/allaccess/views.py index 3edf32f..058080f 100644 --- a/allaccess/views.py +++ b/allaccess/views.py @@ -151,7 +151,7 @@ def get_user_id(self, provider, info): def handle_existing_user(self, provider, user, access, info): "Login user and redirect." - login(self.request, user) + login(self.request, user, backend='allaccess.backends.AuthorizedServiceBackend') return redirect(self.get_login_redirect(provider, user, access)) def handle_login_failure(self, provider, reason): @@ -166,5 +166,5 @@ def handle_new_user(self, provider, access, info): access.user = user AccountAccess.objects.filter(pk=access.pk).update(user=user) user = authenticate(provider=access.provider, identifier=access.identifier) - login(self.request, user) + login(self.request, user, backend='allaccess.backends.AuthorizedServiceBackend') return redirect(self.get_login_redirect(provider, user, access, True)) From f0361b06a3bfeda8a91b4737f8d744cb3186fa40 Mon Sep 17 00:00:00 2001 From: Julio Rama Date: Tue, 18 Feb 2020 13:08:54 -0300 Subject: [PATCH 5/9] Added 'request' parameter to authenticate() method --- allaccess/backends.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/allaccess/backends.py b/allaccess/backends.py index 6ae9a41..4450bea 100644 --- a/allaccess/backends.py +++ b/allaccess/backends.py @@ -9,7 +9,7 @@ class AuthorizedServiceBackend(ModelBackend): "Authentication backend for users registered with remote OAuth provider." - def authenticate(self, provider=None, identifier=None): + def authenticate(self, request, provider=None, identifier=None): "Fetch user for a given provider by id." provider_q = Q(provider__name=provider) if isinstance(provider, Provider): From caeddc60eeddf80fee027ba214b506deda0fa883 Mon Sep 17 00:00:00 2001 From: Julio Rama Date: Tue, 18 Feb 2020 17:51:03 -0300 Subject: [PATCH 6/9] Updated Django version to 3.0.3 and fixed runtests.py --- requirements.txt | 2 +- runtests.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 4e3424f..98a5dfb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ requests-oauthlib==0.7.0 requests==2.11.1 oauthlib==2.0.0 pycrypto==2.6.1 -Django==1.10.3 +Django==3.0.3 gunicorn>=19.6,<19.7 dj-database-url==0.3.0 dj-static==0.0.6 diff --git a/runtests.py b/runtests.py index 66d50e2..3db9140 100644 --- a/runtests.py +++ b/runtests.py @@ -26,13 +26,28 @@ } }, INSTALLED_APPS=INSTALLED_APPS, - MIDDLEWARE_CLASSES=( + MIDDLEWARE=( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ), + TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, + ], AUTHENTICATION_BACKENDS=( 'allaccess.backends.AuthorizedServiceBackend', ), From 5d64f6506aae52d6752cc0e556fcc68e29a089d3 Mon Sep 17 00:00:00 2001 From: Julio Rama Date: Wed, 19 Feb 2020 15:31:42 -0300 Subject: [PATCH 7/9] Updated setup.py --- allaccess/__init__.py | 2 +- setup.py | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/allaccess/__init__.py b/allaccess/__init__.py index 6cdbbf3..133c518 100644 --- a/allaccess/__init__.py +++ b/allaccess/__init__.py @@ -4,7 +4,7 @@ """ -__version__ = '0.10.0.dev.0' +__version__ = '0.10.0' default_app_config = 'allaccess.apps.AllAccessConfig' diff --git a/setup.py b/setup.py index 5052389..9cb174e 100644 --- a/setup.py +++ b/setup.py @@ -13,31 +13,29 @@ def read_file(filename): setup( - name='django-all-access', + name='django3-all-access', version=__import__('allaccess').__version__, - author='Mark Lavin', - author_email='markdlavin@gmail.com', + author='Storm', + author_email='storm@g.globo', packages=find_packages(), include_package_data=True, - url='https://github.com/mlavin/django-all-access', + url='https://github.com/stormers/django-all-access', license='BSD', description=' '.join(__import__('allaccess').__doc__.splitlines()).strip(), classifiers=[ 'Development Status :: 4 - Beta', 'Intended Audience :: Developers', 'Framework :: Django', - 'Framework :: Django :: 1.8', - 'Framework :: Django :: 1.9', - 'Framework :: Django :: 1.10', + 'Framework :: Django :: 3.0', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', + 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Topic :: Software Development :: Libraries :: Python Modules', ], From 857f8b47be453cdf671e66acd33cbbef30433f74 Mon Sep 17 00:00:00 2001 From: Sergio Saules Date: Wed, 19 Feb 2020 15:59:25 -0300 Subject: [PATCH 8/9] Included Makefile --- Makefile | 32 ++++++++++++++++++++++++++++++++ requirements.txt | 1 - 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0111081 --- /dev/null +++ b/Makefile @@ -0,0 +1,32 @@ +.PHONY: help setup clean pep8 tests run + +# Version package +VERSION=$(shell python -c 'import allaccess; print(allaccess.__version__)') + +PROJECT_HOME = "`pwd`" + +help: + @echo + @echo "Please use 'make ' where is one of" + @echo + + @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +setup: ## Install project dependencies + @pip install -r $(PROJECT_HOME)/requirements.txt + +clean: ## Clear *.pyc files, etc + @rm -rf build dist *.egg-info + @find . \( -name '*.pyc' -o -name '__pycache__' -o -name '**/*.pyc' -o -name '*~' \) -delete + +tests: clean ## Make tests + @python runtests.py + +dist: clean ## Make dist + @python setup.py sdist + +publish: clean dist ## Make publish + @echo 'Ready to release version ${VERSION}? (ctrl+c to abort)' && read + twine upload dist/* + @git tag ${VERSION} + @git push --tags diff --git a/requirements.txt b/requirements.txt index 98a5dfb..47e17e8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,4 +9,3 @@ gunicorn>=19.6,<19.7 dj-database-url==0.3.0 dj-static==0.0.6 static3==0.7.0 -psycopg2==2.6.2 From c55683c75996601709ca3bdf08db9b09577c99d1 Mon Sep 17 00:00:00 2001 From: Julio Rama Date: Mon, 2 Mar 2020 17:24:19 -0300 Subject: [PATCH 9/9] Fixed test suite --- .travis.yml | 10 +++------- tox.ini | 14 +++++--------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/.travis.yml b/.travis.yml index 34c9679..5045252 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,15 +3,11 @@ sudo: false language: python python: - - "3.5" + - "3.7" env: - - TOXENV=py27-django18-normal,py33-django18-normal - - TOXENV=py27-django18-custom,py33-django18-custom - - TOXENV=py27-django19-normal,py34-django19-normal - - TOXENV=py27-django19-custom,py34-django19-custom - - TOXENV=py27-django110-normal,py34-django110-normal,py35-django110-normal - - TOXENV=py27-django110-custom,py34-django110-custom,py35-django110-custom + - TOXENV=py37-django30-normal + - TOXENV=py37-django30-custom cache: directories: diff --git a/tox.ini b/tox.ini index 0f129c2..c3004f2 100644 --- a/tox.ini +++ b/tox.ini @@ -1,24 +1,20 @@ [tox] -envlist = py{27,33}-django{18}-{normal,custom},py{27,34,35}-django{19,110}-{normal,custom},docs +envlist = py{34,35, 36, 37}-django{30}-{normal,custom},docs [testenv] commands = coverage run runtests.py basepython = - py27: python2.7 - py33: python3.3 - py34: python3.4 py35: python3.5 + py36: python3.6 + py37: python3.7 deps = coverage>=4.2,<4.3 - django18: Django>=1.8,<1.9 - django19: Django>=1.9,<1.10 - django110: Django>=1.10,<1.11 - py27: mock>=1.0,<2.0 + django30: Django>=3.0,<3.1 setenv = custom: SWAPPED=1 [testenv:docs] -basepython = python2.7 +basepython = python3.4 deps = Sphinx==1.1.3 commands = {envbindir}/sphinx-build -a -n -b html -d docs/_build/doctrees docs docs/_build/html