ó
    ‰Ü)i‡  ã                   ó,   • S r SSKJr  SSKJr  S rS rg)zP
Permission checking utilities for stamp operations based on supervisor groups.
é    )ÚUserSettings)ÚSupervisorGroupc                 ó  •  [         R                  R                  U S9R                  5       nU(       a  UR                  (       d  g[
        R                  R                  UR                  S9R                  5       nU(       d  gUS:X  a  UR                  nU(       d  SOSnOCUS:X  a  UR                  nU(       d  SOSnO%US	:X  a  UR                  nU(       d  S
OSnOSSU 34$ XE4$ ! [         a  nSSK
Jn  U" SU5         SnAgSnAff = f)zì
Check if a user has permission to perform a stamp operation.

Args:
    user_id: UUID of the user requesting the operation
    permission_type: 'add', 'edit', or 'delete'

Returns:
    tuple: (has_permission: bool, error_message: str)
©Úuser_id)TN©ÚgroupÚaddzIYou do not have permission to add stamps. Please contact your supervisor.NÚeditzJYou do not have permission to edit stamps. Please contact your supervisor.ÚdeletezLYou do not have permission to delete stamps. Please contact your supervisor.FzInvalid permission type: r   ©Ú	log_errorÚcheck_stamp_permission©r   ÚobjectsÚfilterÚfirstÚsupervisor_coder   Úcan_add_stampsÚcan_edit_stampsÚcan_delete_stampsÚ	ExceptionÚErrorLogs.utilsr   )r   Úpermission_typeÚuser_settingsÚsupervisor_groupÚhas_permissionÚ	error_msgÚer   s           Ú,D:\TimeStamps\supervisorgroup\permissions.pyr   r      s  € ð%ä$×,Ñ,×3Ñ3¸GÐ3ÐD×JÑJÓLˆæ M×$A×$Aàô +×2Ñ2×9Ñ9Ø×/Ñ/ð :ð 
ç
‰%‹'ð 	ö  àð ˜eÓ#Ø-×<Ñ<ˆNÞkyÑcð  @D‰IØ Ó&Ø-×=Ñ=ˆNÞlzÑdð  AE‰IØ Ó(Ø-×?Ñ?ˆNÞn|Ñfð  CG‰IàÐ5°oÐ5FÐGÐGÐGàÐ(Ð(øäó õ 	.ÙÐ*¨AÔ.Üûðús+   ‚AC' Á<C' ÂA C' Ã$C' Ã'
D
Ã1DÄD
c                 óº  •  [         R                  R                  U S9R                  5       nU(       a  UR                  (       d  SSSS.$ [
        R                  R                  UR                  S9R                  5       nU(       d  SSSS.$ UR                  UR                  UR                  S.$ ! [         a  nSSK
Jn  U" SU5        SSSS.s SnA$ SnAff = f)	zË
Get all stamp permissions for a user.

Args:
    user_id: UUID of the user

Returns:
    dict: {
        'can_add_stamps': bool,
        'can_edit_stamps': bool,
        'can_delete_stamps': bool
    }
r   T)r   r   r   r   r   r   Úget_user_stamp_permissionsNr   )r   r   r   r   r   s        r    r"   r"   ;   sí   € ð'
ä$×,Ñ,×3Ñ3¸GÐ3ÐD×JÑJÓLˆæ M×$A×$Að #'Ø#'Ø%)ñð ô +×2Ñ2×9Ñ9Ø×/Ñ/ð :ð 
ç
‰%‹'ð 	ö  ð #'Ø#'Ø%)ñð ð /×=Ñ=Ø/×?Ñ?Ø!1×!CÑ!Cñ
ð 	
øô ó 
å-ÙÐ.°Ô2à"Ø#Ø!%ñ
õ 	
ûð	
ús+   ‚AB1 ÁAB1 Â#B1 Â1
CÂ;CÃCÃCN)Ú__doc__ÚuserSettings.modelsr   Úsupervisorgroup.modelsr   r   r"   © ó    r    Ú<module>r(      s   ðñõ -Ý 2ò0óf5
r'   