26 lines
898 B
Python
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
|