diff --git a/lib/api/resources/organizations.py b/lib/api/resources/organizations.py index a834278d8d..d3a8257c5b 100644 --- a/lib/api/resources/organizations.py +++ b/lib/api/resources/organizations.py @@ -2,16 +2,24 @@ from tastypie.resources import ModelResource from tastypie.authentication import BasicAuthentication +from tastypie import fields #, utils + from lib.api.auth import AcomAuthorization +from lib.api.resources.projects import Projects +from lib.api.resources.users import Users import lib.main.models as models class Organizations(ModelResource): + users = fields.ToManyField(Users, 'users') + admins = fields.ToManyField(Users, 'admins') + projects = fields.ToManyField(Projects, 'projects') + class Meta: queryset = models.Organization.objects.all() resource_name = 'organizations' authentication = BasicAuthentication() authorization = AcomAuthorization() - + diff --git a/lib/api/resources/projects.py b/lib/api/resources/projects.py new file mode 100644 index 0000000000..f550ebf7c7 --- /dev/null +++ b/lib/api/resources/projects.py @@ -0,0 +1,16 @@ +# myapp/api.py + +from tastypie.resources import ModelResource +from tastypie.authentication import BasicAuthentication +from lib.api.auth import AcomAuthorization +import lib.main.models as models + +class Projects(ModelResource): + + class Meta: + queryset = models.Project.objects.all() + resource_name = 'projects' + authentication = BasicAuthentication() + authorization = AcomAuthorization() + + diff --git a/lib/api/resources/users.py b/lib/api/resources/users.py new file mode 100644 index 0000000000..b9ac621633 --- /dev/null +++ b/lib/api/resources/users.py @@ -0,0 +1,16 @@ +# myapp/api.py + +from tastypie.resources import ModelResource +from tastypie.authentication import BasicAuthentication +from lib.api.auth import AcomAuthorization +import lib.main.models as models + +class Users(ModelResource): + + class Meta: + queryset = models.User.objects.all() + resource_name = 'users' + authentication = BasicAuthentication() + authorization = AcomAuthorization() + + diff --git a/lib/main/models/__init__.py b/lib/main/models/__init__.py index 769d09ed28..cc5012381d 100644 --- a/lib/main/models/__init__.py +++ b/lib/main/models/__init__.py @@ -13,7 +13,7 @@ class CommonModel(models.Model): class Meta: abstract = True - name = models.CharField(max_length=512) + name = models.CharField(max_length=512, unique=True) description = models.TextField() creation_date = models.DateField(auto_now_add=True) tags = models.ManyToManyField('Tag', related_name='%(class)s_tags', blank=True) @@ -163,9 +163,6 @@ class Project(CommonModel): A project represents a playbook git repo that can access a set of inventories ''' - class Meta: - app_label = 'main' - inventories = models.ManyToManyField('Inventory', blank=True, related_name='projects') local_repository = models.CharField(max_length=1024) scm_type = models.CharField(max_length=64)