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