mirror of
https://github.com/Noettore/lagomareGateKeeperBot.git
synced 2025-10-15 03:26:40 +02:00
Show only granted gates in menu
This commit is contained in:
@@ -31,6 +31,9 @@ class Gates:
|
||||
|
||||
def get_name(self, gate: str) -> str | None:
|
||||
return self._gates[gate].name if gate in self._gates else None
|
||||
|
||||
def get_all_gates_id(self) -> list[str]:
|
||||
return [gate for gate in self._gates.keys() if self._gates[gate].status == Status.ENABLED]
|
||||
|
||||
def open_gate(self, gate: str, credentials: Credential) -> bool:
|
||||
if gate not in self._gates:
|
||||
|
@@ -196,3 +196,13 @@ class Users:
|
||||
grant.last_used_at = datetime.now(timezone.utc)
|
||||
self._save_users()
|
||||
return True
|
||||
|
||||
def get_granted_gates(self, user_id: str) -> list[str]:
|
||||
user = self._users.get(user_id)
|
||||
if not user:
|
||||
return []
|
||||
if user.role == Role.ADMIN or user.role == Role.MEMBER:
|
||||
return ['all']
|
||||
if 'all' in user.grants and user.grants['all'].status == Status.ENABLED and user.grants['all'].expires_at > datetime.now(timezone.utc):
|
||||
return ['all']
|
||||
return [gate for gate, grant in user.grants.items() if grant.status == Status.ENABLED and grant.expires_at > datetime.now(timezone.utc)]
|
Reference in New Issue
Block a user