diff --git a/Dockerfile b/Dockerfile index 535bd8cb8..45343d121 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # vim:ft=dockerfile -FROM phusion/baseimage:0.9.17 +FROM phusion/baseimage:0.9.18 ENV DEBIAN_FRONTEND noninteractive ENV HOME /root diff --git a/app.py b/app.py index 006084bda..79635fbd6 100644 --- a/app.py +++ b/app.py @@ -215,9 +215,11 @@ class LoginWrappedDBUser(UserMixin): self._db_user = model.user.get_user_by_uuid(self._uuid) return self._db_user + @property def is_authenticated(self): return self.db_user() is not None + @property def is_active(self): return self.db_user().verified diff --git a/auth/auth.py b/auth/auth.py index 80e211607..5192c428d 100644 --- a/auth/auth.py +++ b/auth/auth.py @@ -24,7 +24,7 @@ logger = logging.getLogger(__name__) SIGNATURE_PREFIX = 'sigv2=' def _load_user_from_cookie(): - if not current_user.is_anonymous(): + if not current_user.is_anonymous: try: # Attempt to parse the user uuid to make sure the cookie has the right value type UUID(current_user.get_id()) diff --git a/requirements.txt b/requirements.txt index 2d6ccabcb..4799bfda2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,99 +1,109 @@ aiowsgi==0.5 -alembic==0.7.6 -APScheduler==3.0.3 +alembic==0.8.4 +APScheduler==3.0.5 autobahn==0.9.3-3 -Babel==1.3 -beautifulsoup4==4.4.0 +Babel==2.2.0 +beautifulsoup4==4.4.1 bencode==1.0 bintrees==2.0.4 -blinker==1.3 -boto==2.38.0 -cachetools==1.0.3 -cffi==1.1.2 -cryptography==1.0.2 -debtcollector==0.5.0 -enum34==1.0.4 +blinker==1.4 +boto==2.39.0 +cachetools==1.1.5 +cffi==1.5.0 +contextlib2==0.5.1 +cryptography==1.2.1 +debtcollector==1.2.0 +decorator==4.0.6 +enum34==1.1.2 Flask==0.10.1 -Flask-Login==0.2.11 +Flask-Login==0.3.2 Flask-Mail==0.9.1 Flask-Principal==0.4.0 Flask-RESTful==0.2.12 Flask-Testing==0.4.2 funcparserlib==0.3.6 -functools32==3.2.3-1 -futures==3.0.3 +funcsigs==0.4 +functools32==3.2.3-2 +future==0.15.2 +futures==3.0.4 gevent==1.0.2 -gipc==0.5.0 -greenlet==0.4.7 +gipc==0.6.0 +greenlet==0.4.9 gunicorn==18.0 hiredis==0.2.0 -html5lib==0.99999 +html5lib==0.9999999 idna==2.0 -ipaddress==1.0.7 -iso8601==0.1.10 +ipaddress==1.0.16 +iso8601==0.1.11 itsdangerous==0.24 -Jinja2==2.7.3 -jsonschema==2.5.1 +Jinja2==2.8 jsonpath-rw==1.4.0 -Mako==1.0.1 +jsonschema==2.5.1 +keystoneauth1==2.2.0 +Mako==1.0.3 marisa-trie==0.7.2 MarkupSafe==0.23 -mixpanel==4.1.0 -mock==1.0.1 -msgpack-python==0.4.6 +mixpanel==4.3.0 +mock==1.3.0 +monotonic==0.6 +msgpack-python==0.4.7 ndg-httpsclient==0.4.0 -netaddr==0.7.15 +netaddr==0.7.18 netifaces==0.10.4 -oauthlib==0.7.2 -oslo.config==1.13.0 -oslo.i18n==2.0.0 -oslo.serialization==1.6.0 -oslo.utils==1.7.0 -pbr==1.2.0 -peewee==2.6.2 -Pillow==2.9.0 +oauthlib==1.0.3 +oslo.config==3.4.0 +oslo.i18n==3.2.0 +oslo.serialization==2.2.0 +oslo.utils==3.4.0 +pbr==1.8.1 +peewee==2.8.0 +Pillow==3.1.0 +ply==3.8 prettytable==0.7.2 -psutil==3.0.1 +psutil==3.4.2 psycopg2==2.6.1 py-bcrypt==0.4 -pyasn1==0.1.8 +pyasn1==0.1.9 pycparser==2.14 pycrypto==2.6.1 +pycryptodome==3.3.1 +PyGithub==1.25.2 pygpgme==0.3 -pyjwkest==1.0.3 +pyjwkest==1.1.0 PyJWT==1.4.0 -PyMySQL==0.6.6 +PyMySQL==0.7.1 pyOpenSSL==0.15.1 -PyPDF2==1.24 +PyPDF2==1.25.1 python-dateutil==2.4.2 -python-keystoneclient==1.6.0 -python-ldap==2.4.19 -python-magic==0.4.6 -python-swiftclient==2.4.0 -pytz==2015.4 +python-editor==0.5 +python-keystoneclient==2.1.1 +python-ldap==2.4.25 +python-magic==0.4.10 +python-swiftclient==2.7.0 +pytz==2015.7 PyYAML==3.11 -raven==5.3.1 -redis==2.10.3 -redlock==1.1.0 +raven==5.10.1 +redis==2.10.5 +redlock==1.2.0 reportlab==2.7 -requests==2.7.0 -requests-oauthlib==0.5.0 -rfc3987==1.3.4 +requests==2.9.1 +requests-oauthlib==0.6.0 +rfc3987==1.3.5 semantic-version==2.4.2 -simplejson==3.7.3 -six==1.9.0 -SQLAlchemy==1.0.6 -stevedore==1.5.0 +six==1.10.0 +SQLAlchemy==1.0.11 +stevedore==1.10.0 stringscore==0.1.0 -stripe==1.22.3 +stripe==1.29.0 toposort==1.4 -trollius==1.0.4 +trollius==2.0 tzlocal==1.2 -urllib3==1.10.4 -waitress==0.8.9 -WebOb==1.4.1 -Werkzeug==0.10.4 -wrapt==1.10.5 +urllib3==1.14 +waitress==0.8.10 +WebOb==1.5.1 +Werkzeug==0.11.3 +wheel==0.24.0 +wrapt==1.10.6 xhtml2pdf==0.0.6 git+https://github.com/DevTable/aniso8601-fake.git @@ -104,6 +114,5 @@ git+https://github.com/coreos/mockldap.git git+https://github.com/coreos/py-bitbucket.git git+https://github.com/coreos/pyapi-gitlab.git@timeout git+https://github.com/coreos/resumablehashlib.git -git+https://github.com/coreos/resumablehashlib.git git+https://github.com/DevTable/python-etcd.git@sslfix git+https://github.com/NateFerrero/oauth2lib.git diff --git a/util/config/oauth.py b/util/config/oauth.py index 0868c2c40..0b27902c9 100644 --- a/util/config/oauth.py +++ b/util/config/oauth.py @@ -1,11 +1,10 @@ import urlparse -import github import json import logging import time -from cachetools.func import TTLCache -from jwkest.jwk import KEYS, keyrep +from cachetools import TTLCache +from jwkest.jwk import KEYS logger = logging.getLogger(__name__) diff --git a/util/security/aes.py b/util/security/aes.py index 10f1ac030..93d341f9a 100644 --- a/util/security/aes.py +++ b/util/security/aes.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + import base64 import hashlib from Crypto import Random diff --git a/util/security/ssh.py b/util/security/ssh.py index 3641f4ec9..6bdbca20a 100644 --- a/util/security/ssh.py +++ b/util/security/ssh.py @@ -1,3 +1,5 @@ +from __future__ import absolute_import + from Crypto.PublicKey import RSA def generate_ssh_keypair():