Files
Django-Proxmox-Mikrotik/frontend/permissions.py
Holger Sielaff 90c0ff61ed initial
2025-08-27 09:55:55 +02:00

22 lines
867 B
Python

# frontend/permissions.py
from mikrotik.models import IPAddress
def user_can_access_container(user_profile, container):
"""Prüft, ob der Benutzer Zugriff auf den Container hat."""
if user_profile.is_internal():
return True
if user_profile.user.is_superuser:
return True
# Für externe Benutzer: Nur Container im eigenen Netzwerkbereich
ldap_uid = user_profile.ldap_uid
ip_addresses = IPAddress.objects.filter(comment__icontains=f' {ldap_uid} ')
# Prüfen, ob Container-Netzwerk mit einer der IP-Adressen übereinstimmt
networks = [ip.network for ip in ip_addresses]
if hasattr(container, 'lease') and container.lease:
container_network = '.'.join(container.lease.address.split('.')[:3])
return any(network.startswith(container_network) for network in networks)
return False