Show only type person in no keyfobs panel
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful

This commit is contained in:
Madis Mägi 2023-08-24 22:08:40 +03:00
parent e7a017e766
commit fe301f9c9a
2 changed files with 6 additions and 1 deletions

View File

@ -23,6 +23,7 @@ class User:
username: str = None username: str = None
display_name: str = None display_name: str = None
slack_id: str = None slack_id: str = None
user_type: str = None
groups: List[str] = field(default_factory=list) groups: List[str] = field(default_factory=list)
def __getitem__(self, item): def __getitem__(self, item):
@ -37,10 +38,11 @@ def get_users_inner():
username = item['metadata']['name'] username = item['metadata']['name']
display_name = item.get("spec", {}).get("customProfile", {}).get("name", None) display_name = item.get("spec", {}).get("customProfile", {}).get("name", None)
slack_id = item.get("status", {}).get("slackId", None) slack_id = item.get("status", {}).get("slackId", None)
user_type = item.get("status", {}).get("type", None)
groups = [] groups = []
for group in item.get("status", {}).get("groups", []): for group in item.get("status", {}).get("groups", []):
groups.append(f"{group['prefix']}:{group['name']}") groups.append(f"{group['prefix']}:{group['name']}")
yield User(username, display_name, slack_id, groups) yield User(username, display_name, slack_id, user_type, groups)
def get_users(): def get_users():
users = list(get_users_inner()) users = list(get_users_inner())

View File

@ -248,6 +248,9 @@ def view_doorboy_admin():
orphaned_keyfobs = user_keyfobs.pop(None) orphaned_keyfobs = user_keyfobs.pop(None)
no_keyfobs = [u for u in g.users if not user_keyfobs.get(u.username)] no_keyfobs = [u for u in g.users if not user_keyfobs.get(u.username)]
for u in no_keyfobs:
if u.user_type != "person":
del no_keyfobs[u.username]
last_seen = {key : max(datetime_handle(card.get("last_seen")) for card in value) for key, value in user_keyfobs.items()} last_seen = {key : max(datetime_handle(card.get("last_seen")) for card in value) for key, value in user_keyfobs.items()}
orphaned_keyfobs = sorted(orphaned_keyfobs, key = lambda o : (not bool(o.get("comment")), o.get("comment", ""))) orphaned_keyfobs = sorted(orphaned_keyfobs, key = lambda o : (not bool(o.get("comment")), o.get("comment", "")))