added Credential.migrate_to_rbac and tests

This commit is contained in:
Wayne Witzel III
2016-02-05 08:47:15 -05:00
parent b903726ddb
commit 58a603bac1
3 changed files with 73 additions and 8 deletions
+13 -7
View File
@@ -156,19 +156,16 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique, ResourceMixin):
help_text=_('Vault password (or "ASK" to prompt the user).'),
)
owner_role = ImplicitRoleField(
role_name='Credential Owner',
parent_role=[
'user.user_role',
'team.admin_role'
],
role_name='Credential Owner',
parent_role='team.admin_role',
resource_field='resource',
permissions = { 'all': True }
)
usage_role = ImplicitRoleField(
role_name='Credential User',
role_name='Credential User',
resource_field='resource',
parent_role= 'team.member_role',
permissions = { 'usage': True }
permissions = { 'use': True }
)
@property
@@ -366,6 +363,15 @@ class Credential(PasswordFieldsModel, CommonModelNameNotUnique, ResourceMixin):
update_fields.append('cloud')
super(Credential, self).save(*args, **kwargs)
def migrate_to_rbac(self):
if self.user:
self.owner_role.members.add(self.user)
return [self.user]
elif self.team:
self.owner_role.parents.add(self.team.admin_role)
self.usage_role.parents.add(self.team.member_role)
return [self.team]
def validate_ssh_private_key(data):
"""Validate that the given SSH private key or certificate is,
in fact, valid.