Skip to content

Commit

Permalink
Merge ccf4c37 into ad0b2bd
Browse files Browse the repository at this point in the history
  • Loading branch information
jrittenh committed Jan 18, 2019
2 parents ad0b2bd + ccf4c37 commit d3bc747
Showing 1 changed file with 49 additions and 5 deletions.
54 changes: 49 additions & 5 deletions nipyapi/security.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@

log = logging.getLogger(__name__)

__all__ = ['create_service_user', 'service_login', 'set_service_auth_token',
'service_logout', 'get_service_access_status',
'add_user_to_access_policy', 'update_access_policy',
'get_access_policy_for_resource', 'create_access_policy',
'list_service_users', 'get_service_user', 'set_service_ssl_context']
__all__ = ['create_service_user', 'create_service_user_group', 'service_login',
'set_service_auth_token', 'service_logout',
'get_service_access_status', 'add_user_to_access_policy',
'update_access_policy', 'get_access_policy_for_resource',
'create_access_policy', 'list_service_users', 'get_service_user',
'set_service_ssl_context']

# These are the known-valid policy actions
_valid_actions = ['read', 'write', 'delete']
Expand Down Expand Up @@ -47,6 +48,9 @@ def create_service_user(identity, service='nifi'):
else:
# must be nifi
user_obj = nipyapi.nifi.UserEntity(
revision=nipyapi.nifi.RevisionDTO(
version=0
),
component=nipyapi.nifi.UserDTO(
identity=identity
)
Expand All @@ -58,6 +62,46 @@ def create_service_user(identity, service='nifi'):
nipyapi.registry.rest.ApiException) as e:
raise ValueError(e.body)

def create_service_user_group(identity, service='nifi', users=[]):
"""
Attempts to create a user with the provided identity and member users in the
given service
Args:
identity (str): Identiy string for the user group
service (str): 'nifi' or 'registry'
users (list): A list of UserEntities that should be populated as members
Returns:
The new (UserGroup) or (UserGroupEntity) object
"""
assert service in _valid_services
assert isinstance(identity, six.string_types)
assert all(isinstance(user, nipyapi.nifi.UserEntity) for user in users)
if service == 'registry':
pass
user_group_obj = nipyapi.registry.UserGroup(
identity=identity,
users=[{'id': user.id} for user in users]
)
else:
# must be nifi
user_group_obj = nipyapi.nifi.UserGroupEntity(
revision=nipyapi.nifi.RevisionDTO(
version=0
),
component=nipyapi.nifi.UserGroupDTO(
identity=identity,
users=[{'id': user.id} for user in users]
)
)
try:
return getattr(nipyapi, service).TenantsApi().create_user_group(user_group_obj)
except (
nipyapi.nifi.rest.ApiException,
nipyapi.registry.rest.ApiException) as e:
raise ValueError(e.body)

def service_login(service='nifi', username=None, password=None,
bool_response=False):
Expand Down

0 comments on commit d3bc747

Please sign in to comment.