loko/streetup/inspections/permissions.py

26 lines
898 B
Python

from django.conf import settings
def can_edit_inspection(user, inspection):
"""
Vérifie si un utilisateur a le droit de modifier une inspection.
Les auteurs (inspecteurs de l'inspection) et les administrateurs ont le droit de modifier.
"""
if not user or not user.is_authenticated:
return False
# Administrateur Django superuser ou staff
if getattr(user, 'is_superuser', False) or getattr(user, 'is_staff', False):
return True
# Administrateur au sens configuration de rôle StreetUp
user_config = getattr(user, 'config', None)
if user_config and hasattr(user_config, 'has_role'):
if user_config.has_role('admin') or user_config.has_role('top_manager'):
return True
# Auteur de l'inspection (l'inspecteur créateur)
if inspection and inspection.inspector_id == user.id:
return True
return False