Added a ResourceMixin to be added to any model that is a "Resource"

Also added initial permissions checking and accessible object methods to
the mixin
This commit is contained in:
Akita Noek
2016-01-29 13:18:32 -05:00
parent 6dad0406b8
commit 5b50ebb8da
6 changed files with 155 additions and 35 deletions
+3 -8
View File
@@ -11,15 +11,16 @@ from django.core.exceptions import ValidationError, NON_FIELD_ERRORS
from django.core.urlresolvers import reverse
# AWX
from awx.main.fields import ImplicitResourceField, ImplicitRoleField
from awx.main.fields import ImplicitRoleField
from awx.main.constants import CLOUD_PROVIDERS
from awx.main.utils import decrypt_field
from awx.main.models.base import * # noqa
from awx.main.models.mixins import ResourceMixin
__all__ = ['Credential']
class Credential(PasswordFieldsModel, CommonModelNameNotUnique):
class Credential(PasswordFieldsModel, CommonModelNameNotUnique, ResourceMixin):
'''
A credential contains information about how to talk to a remote resource
Usually this is a SSH key location, and possibly an unlock password.
@@ -154,12 +155,6 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique):
default='',
help_text=_('Vault password (or "ASK" to prompt the user).'),
)
resource = ImplicitResourceField(
parent_resource=[
'user.resource',
'team.resource'
]
)
owner_role = ImplicitRoleField(
role_name='Credential Owner',
parent_role=[