From 7340ef1f9b483be3372971bee0fbc8cb3300d36a Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Fri, 26 May 2017 12:44:06 -0500 Subject: [PATCH] Rearrange some imports to ensure `rattail.db.model` comes last this is necessary for Continuum versioning --- tailbone/app.py | 8 ++++---- tailbone/auth.py | 7 +++++-- tailbone/forms/fields.py | 3 +-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/tailbone/app.py b/tailbone/app.py index 99f3d8cc..16a78c64 100644 --- a/tailbone/app.py +++ b/tailbone/app.py @@ -34,8 +34,7 @@ import sqlalchemy as sa import rattail.db from rattail.config import make_config from rattail.exceptions import ConfigurationError -from rattail.db.util import get_engines -from rattail.db.continuum import configure_versioning +from rattail.db.config import get_engines, configure_versioning from rattail.db.types import GPCType import formalchemy as fa @@ -44,8 +43,6 @@ from pyramid.authentication import SessionAuthenticationPolicy import tailbone.db from tailbone.auth import TailboneAuthorizationPolicy -from tailbone.forms import renderers -from tailbone.forms.alchemy import TemplateEngine def make_rattail_config(settings): @@ -125,6 +122,9 @@ def make_pyramid_config(settings): """ Make a Pyramid config object from the given settings. """ + from tailbone.forms.alchemy import TemplateEngine + from tailbone.forms import renderers + config = Configurator(settings=settings, root_factory=Root) # Configure user authentication / authorization. diff --git a/tailbone/auth.py b/tailbone/auth.py index d13f8b7d..9edf6742 100644 --- a/tailbone/auth.py +++ b/tailbone/auth.py @@ -28,8 +28,6 @@ from __future__ import unicode_literals, absolute_import import logging -from rattail.db import model -from rattail.db.auth import has_permission, authenticated_role from rattail.util import prettify, NOTSET from zope.interface import implementer @@ -70,6 +68,8 @@ def session_timeout_for_user(user): """ Returns the "max" session timeout for the user, according to roles """ + from rattail.db.auth import authenticated_role + roles = user.roles + [authenticated_role(Session())] timeouts = [role.session_timeout for role in roles if role.session_timeout is not None] @@ -88,6 +88,9 @@ def set_session_timeout(request, timeout): class TailboneAuthorizationPolicy(object): def permits(self, context, principals, permission): + from rattail.db import model + from rattail.db.auth import has_permission + for userid in principals: if userid not in (Everyone, Authenticated): if context.request.user and context.request.user.uuid == userid: diff --git a/tailbone/forms/fields.py b/tailbone/forms/fields.py index 17ea4d45..53651369 100644 --- a/tailbone/forms/fields.py +++ b/tailbone/forms/fields.py @@ -28,8 +28,6 @@ from __future__ import unicode_literals, absolute_import import formalchemy as fa -from rattail.db import model - def AssociationProxyField(name, **kwargs): """ @@ -45,6 +43,7 @@ def AssociationProxyField(name, **kwargs): self.renderer.deserialize()) def value(model): + from rattail.db import model return getattr(model, name, None) kwargs.setdefault('value', value)