This commit is contained in:
Kenneth Kehl
2023-08-29 14:54:30 -07:00
parent 19dcd7a48b
commit 1ecb747c6d
588 changed files with 34100 additions and 23589 deletions

View File

@@ -7,7 +7,9 @@ ORG_NAME = "gsa-tts-benefits-studio"
client = CloudFoundryClient.build_from_cf_config()
org_guid = check_output(f"cf org {ORG_NAME} --guid", shell=True).decode().strip()
space_guids = list(map(lambda item: item['guid'], client.v3.spaces.list(organization_guids=org_guid)))
space_guids = list(
map(lambda item: item["guid"], client.v3.spaces.list(organization_guids=org_guid))
)
class RoleCollector:
@@ -17,18 +19,15 @@ class RoleCollector:
def add(self, role):
user = role.user
if self._map.get(user.guid) is None:
self._map[user.guid] = {
"user": user,
"roles": [role]
}
self._map[user.guid] = {"user": user, "roles": [role]}
else:
self._map[user.guid]["roles"].append(role)
def print(self):
for user_roles in self._map.values():
user = user_roles['user']
user = user_roles["user"]
print(f"{user.type}: {user.username} has roles:")
for role in user_roles['roles']:
for role in user_roles["roles"]:
if role.space:
print(f" {role.type} in {role.space.name}")
else:
@@ -40,30 +39,30 @@ role_collector = RoleCollector()
class User:
def __init__(self, entity):
self.guid = entity['guid']
self._username = entity['username']
self._is_service_account = entity['origin'] != 'gsa.gov'
self.type = 'Bot' if self._is_service_account else 'User'
self.guid = entity["guid"]
self._username = entity["username"]
self._is_service_account = entity["origin"] != "gsa.gov"
self.type = "Bot" if self._is_service_account else "User"
@property
def username(self):
if self._is_service_account:
return client.v3.service_credential_bindings.get(
self._username, include="service_instance"
).service_instance()['name']
).service_instance()["name"]
else:
return self._username
class Space:
def __init__(self, entity):
self.name = entity['name']
self.name = entity["name"]
class Role:
def __init__(self, entity):
self._fields = entity
self.type = entity['type']
self.type = entity["type"]
self.user = User(entity.user())
@property
@@ -74,11 +73,13 @@ class Role:
return None
for role in map(Role, client.v3.roles.list(organization_guids=org_guid, include="user")):
for role in map(
Role, client.v3.roles.list(organization_guids=org_guid, include="user")
):
role_collector.add(role)
for role in map(Role, client.v3.roles.list(space_guids=space_guids, include="user")):
role_collector.add(role)
if __name__ == '__main__':
if __name__ == "__main__":
role_collector.print()