From 6fda31e790130b644763837a07571bd99618bf3c Mon Sep 17 00:00:00 2001 From: Chris Church Date: Sat, 20 Jul 2013 19:59:53 -0400 Subject: [PATCH] Fix imports, __all__ definition, organization/team sublists under projects. --- awx/main/access.py | 23 +++++++++++++++++++++++ awx/main/models/__init__.py | 31 +++++-------------------------- awx/main/tests/commands.py | 1 + awx/main/tests/inventory.py | 2 +- awx/main/tests/jobs.py | 1 + awx/main/tests/projects.py | 6 ++---- awx/main/tests/users.py | 2 +- awx/main/views.py | 4 ++-- 8 files changed, 36 insertions(+), 34 deletions(-) diff --git a/awx/main/access.py b/awx/main/access.py index c77bc2ebb5..057694351c 100644 --- a/awx/main/access.py +++ b/awx/main/access.py @@ -18,6 +18,29 @@ from awx.main.licenses import LicenseReader __all__ = ['get_user_queryset', 'check_user_access'] +PERMISSION_TYPES = [ + PERM_INVENTORY_ADMIN, + PERM_INVENTORY_READ, + PERM_INVENTORY_WRITE, + PERM_INVENTORY_DEPLOY, + PERM_INVENTORY_CHECK, +] + +PERMISSION_TYPES_ALLOWING_INVENTORY_READ = [ + PERM_INVENTORY_ADMIN, + PERM_INVENTORY_WRITE, + PERM_INVENTORY_READ, +] + +PERMISSION_TYPES_ALLOWING_INVENTORY_WRITE = [ + PERM_INVENTORY_ADMIN, + PERM_INVENTORY_WRITE, +] + +PERMISSION_TYPES_ALLOWING_INVENTORY_ADMIN = [ + PERM_INVENTORY_ADMIN, +] + logger = logging.getLogger('awx.main.access') access_registry = { diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 8b967a967e..e9f50f9a20 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -33,9 +33,11 @@ from djcelery.models import TaskMeta # Django-REST-Framework from rest_framework.authtoken.models import Token -__all__ = ['Organization', 'Team', 'Project', 'Credential', 'Inventory', - 'Host', 'Group', 'Permission', 'JobTemplate', 'Job', - 'JobHostSummary', 'JobEvent'] +__all__ = ['PrimordialModel', 'Organization', 'Team', 'Project', 'Credential', + 'Inventory', 'Host', 'Group', 'Permission', 'JobTemplate', 'Job', + 'JobHostSummary', 'JobEvent', 'PERM_INVENTORY_ADMIN', + 'PERM_INVENTORY_READ', 'PERM_INVENTORY_WRITE', + 'PERM_INVENTORY_DEPLOY', 'PERM_INVENTORY_CHECK'] # TODO: reporting model TBD @@ -50,29 +52,6 @@ JOB_TYPE_CHOICES = [ (PERM_INVENTORY_CHECK, _('Check')), ] -PERMISSION_TYPES = [ - PERM_INVENTORY_ADMIN, - PERM_INVENTORY_READ, - PERM_INVENTORY_WRITE, - PERM_INVENTORY_DEPLOY, - PERM_INVENTORY_CHECK, -] - -PERMISSION_TYPES_ALLOWING_INVENTORY_READ = [ - PERM_INVENTORY_ADMIN, - PERM_INVENTORY_WRITE, - PERM_INVENTORY_READ, -] - -PERMISSION_TYPES_ALLOWING_INVENTORY_WRITE = [ - PERM_INVENTORY_ADMIN, - PERM_INVENTORY_WRITE, -] - -PERMISSION_TYPES_ALLOWING_INVENTORY_ADMIN = [ - PERM_INVENTORY_ADMIN, -] - # FIXME: TODO: make sure all of these are used and consistent PERMISSION_TYPE_CHOICES = [ (PERM_INVENTORY_READ, _('Read Inventory')), diff --git a/awx/main/tests/commands.py b/awx/main/tests/commands.py index 656f8fc554..a07b66a107 100644 --- a/awx/main/tests/commands.py +++ b/awx/main/tests/commands.py @@ -10,6 +10,7 @@ import tempfile # Django from django.conf import settings +from django.contrib.auth.models import User from django.core.management import call_command from django.core.management.base import CommandError from django.utils.timezone import now diff --git a/awx/main/tests/inventory.py b/awx/main/tests/inventory.py index 6623c0071c..a94b0b5cea 100644 --- a/awx/main/tests/inventory.py +++ b/awx/main/tests/inventory.py @@ -4,7 +4,7 @@ import datetime import json -from django.contrib.auth.models import User as DjangoUser +from django.contrib.auth.models import User from django.core.urlresolvers import reverse from awx.main.models import * from awx.main.tests.base import BaseTest diff --git a/awx/main/tests/jobs.py b/awx/main/tests/jobs.py index 5d9b92f476..73aa0b1484 100644 --- a/awx/main/tests/jobs.py +++ b/awx/main/tests/jobs.py @@ -10,6 +10,7 @@ import uuid # Django from django.contrib.auth.models import User as DjangoUser +from django.conf import settings from django.core.urlresolvers import reverse from django.db import transaction import django.test diff --git a/awx/main/tests/projects.py b/awx/main/tests/projects.py index 4128549cd4..9e6ea70834 100644 --- a/awx/main/tests/projects.py +++ b/awx/main/tests/projects.py @@ -7,7 +7,7 @@ import os import tempfile from django.conf import settings -from django.contrib.auth.models import User as DjangoUser +from django.contrib.auth.models import User import django.test from django.test.client import Client from django.core.urlresolvers import reverse @@ -254,10 +254,8 @@ class ProjectsTest(BaseTest): got = self.get(proj_orgs, expect=200, auth=self.get_super_credentials()) self.assertEquals(got['count'], 1) self.assertEquals(got['results'][0]['url'], reverse('main:organization_detail', args=(self.organizations[0].pk,))) - # you can't add organizations to projects here, verify that this is true (405) - #self.post(proj_orgs, data={}, expect=405, auth=self.get_super_credentials()) - # yes you can post now. + # post to create new org associated with this project. self.post(proj_orgs, data={'name': 'New Org'}, expect=201, auth=self.get_super_credentials()) got = self.get(proj_orgs, expect=200, auth=self.get_super_credentials()) self.assertEquals(got['count'], 2) diff --git a/awx/main/tests/users.py b/awx/main/tests/users.py index eb0d42590f..d4d3b88b9b 100644 --- a/awx/main/tests/users.py +++ b/awx/main/tests/users.py @@ -3,7 +3,7 @@ import json -from django.contrib.auth.models import User as DjangoUser +from django.contrib.auth.models import User import django.test from django.test.client import Client from django.core.urlresolvers import reverse diff --git a/awx/main/views.py b/awx/main/views.py index 813e0594c6..5570859287 100644 --- a/awx/main/views.py +++ b/awx/main/views.py @@ -287,7 +287,7 @@ class ProjectDetailPlaybooks(RetrieveAPIView): model = Project serializer_class = ProjectPlaybooksSerializer -class ProjectOrganizationsList(SubListAPIView): +class ProjectOrganizationsList(SubListCreateAPIView): model = Organization serializer_class = OrganizationSerializer @@ -302,7 +302,7 @@ class ProjectOrganizationsList(SubListAPIView): raise PermissionDenied() return Organization.objects.filter(projects__in = [ project ]) -class ProjectTeamsList(BaseSubList): +class ProjectTeamsList(SubListCreateAPIView): model = Team serializer_class = TeamSerializer