
    h                     v    d dl mZ d dlmZ d dlmZ d dlmZ	 ddl
mZ ddlmZ  G d d	ej                        Zy
)    )VERSION)admin)get_user_model)gettext_lazy   )settings)clear_folder_permission_cachec                        e Zd Zddddgif ed      dg dif ed      dg difgZd	gZg d
Zg dZg dZ G d d      Z	 fdZ
 fdZd Z fdZ fdZ xZS )PermissionAdminNfieldstypefolderWho)usergroup	everybodyWhat)can_editcan_readcan_add_childrenr   )pretty_logical_pathwhowhat)user__usernamegroup__namefolder__name)r   r   r   c                       e Zd ZddgiZy)PermissionAdmin.Mediaallz%filer/css/admin_folderpermissions.cssN)__name__
__module____qualname__css     K/home/dcms/DCMS/lib/python3.12/site-packages/filer/admin/permissionadmin.pyMediar      s    >?@r%   r'   c                    t         |   |      }t        dk\  r$| j                  j	                  t                     }n!| j                  j                  t                  }|j                  |      s|j                  d       |S )zJRemove "owner" from autocomplete_fields is User model has no search_fields)   r   r   )	superget_autocomplete_fieldsdjango_version
admin_siteget_model_adminr   	_registryget_search_fieldsremove)selfrequestautocomplete_fields
user_admin	__class__s       r&   r+   z'PermissionAdmin.get_autocomplete_fields   sm     $g=gFV#889IJJ22>3CDJ++G4&&v.""r%   c                 F    t         |   |      }|j                  dd      S )Nr   r   )r*   get_querysetprefetch_related)r2   r3   qsr6   s      r&   r8   zPermissionAdmin.get_queryset$   s%    W!'*""7H55r%   c                 h    t         j                  xr |j                  j                  d      }|||dS )Nzfiler.add_folderpermission)addchangedelete)r   FILER_ENABLE_PERMISSIONSr   has_perm)r2   r3   enable_permissionss      r&   get_model_permszPermissionAdmin.get_model_perms(   s8     &>>v7<<CXCXYuCv%((
 	
r%   c                 T    t        |j                         t        |   ||||       y N)r	   r   r*   
save_model)r2   r3   objformr=   r6   s        r&   rE   zPermissionAdmin.save_model2   s"    %gll37Cv6r%   c                 P    t        |j                         t        |   ||       y rD   )r	   r   r*   delete_model)r2   r3   rF   r6   s      r&   rI   zPermissionAdmin.delete_model6   s    %gll3Wc*r%   )r    r!   r"   _	fieldsetslist_filterlist_displaysearch_fieldsr4   r'   r+   r8   rB   rE   rI   __classcell__)r6   s   @r&   r   r   
   s    	68,-.	
5H<=>	
6XKLMI
 )K9LEM5A A
#6
7+ +r%   r   N)djangor   r,   django.contribr   django.contrib.authr   django.utils.translationr   rJ    r   cacher	   
ModelAdminr   r$   r%   r&   <module>rW      s)    ,   . 6  1.+e&& .+r%   