forked from k-space/doorboy-proxy
fix slack-kube auth
1. reorder slack auth methods 2. refactor + fix kube slack lookup
This commit is contained in:
19
app/kube.py
19
app/kube.py
@@ -5,6 +5,15 @@ from kubernetes import client, config
|
||||
|
||||
OIDC_USERS_NAMESPACE = os.environ["OIDC_USERS_NAMESPACE"]
|
||||
|
||||
def groupsToFullName(groups) -> List[str]:
|
||||
fullName: List[str] = []
|
||||
|
||||
for group in groups:
|
||||
fullName.append(
|
||||
group.get("prefix", "") + ":" + group.get("name", "")
|
||||
)
|
||||
|
||||
return fullName
|
||||
|
||||
def users_with_group(requiredGroup: str) -> List[str]:
|
||||
config.load_incluster_config()
|
||||
@@ -17,16 +26,14 @@ def users_with_group(requiredGroup: str) -> List[str]:
|
||||
)
|
||||
|
||||
for item in ret["items"]:
|
||||
for group in item.get("status", {}).get("groups", []):
|
||||
groupName = group.get("prefix", "") + ":" + group.get("name", "")
|
||||
if groupName == requiredGroup:
|
||||
for group in groupsToFullName(item.get("status", {}).get("groups", [])):
|
||||
if group == requiredGroup:
|
||||
users.append(item["metadata"]["name"])
|
||||
continue
|
||||
|
||||
print(f"INFO: {len(users)} users in group {requiredGroup}")
|
||||
return users
|
||||
|
||||
|
||||
# -> (groups[], username)
|
||||
def by_slackid(slack_id: str) -> Tuple[List[str], str]:
|
||||
config.load_incluster_config()
|
||||
@@ -37,8 +44,6 @@ def by_slackid(slack_id: str) -> Tuple[List[str], str]:
|
||||
)
|
||||
for item in ret["items"]:
|
||||
if slack_id == item.get("status", {}).get("slackId", None):
|
||||
return item.get("status", {}).get("groups", []), item.get(
|
||||
"metadata", {}
|
||||
).get("name", "")
|
||||
return groupsToFullName(item.get("status", {}).get("groups", [])), item.get("metadata", {}).get("name", "")
|
||||
|
||||
return [], ""
|
||||
|
||||
Reference in New Issue
Block a user