o
    /h                     @   sh   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 d dlmZ G dd	 d	eZd
S )    )apps)create_permissions)_get_all_permissions)
Permission)ContentType)BaseCommand)signalcommandc                       s,   e Zd ZdZ fddZedd Z  ZS )CommandzLreloads permissions for specified apps, or all apps if no args are specifiedc                    sD   t  | |jdddd |jddddd	 |jd
dddd	 d S )Nz--appsr   z2Reload permissions only for apps (comma separated))desthelpz--create-only
store_trueFzOnly create missing permissions)actiondefaultr   z--update-onlyzOnly update permissions)superadd_argumentsadd_argument)selfparser	__class__ s/var/www/html/env_mimamsha/lib/python3.10/site-packages/django_extensions/management/commands/update_permissions.pyr      s$   
zCommand.add_argumentsc                 O   s  |d r|d  d}dd |D }nt }|d r d\}}n|d r)d\}}nd	\}}|D ]]}|r:t||d
  |r| D ]K}tj|}	t|j	D ]=\}
}z
t
jj|
|	d}W n
 t
jye   Y qMw |j|krt|}||_|d
 dkr| j| jd||f  |  qMq@q/d S )Nr   ,c                 S   s   g | ]}t |qS r   )django_appsget_app_config).0xr   r   r   
<listcomp>)   s    z"Command.handle.<locals>.<listcomp>create_only)TFupdate_only)FT)TT	verbosity)codenamecontent_type   zUpdate permission '%s' to '%s')splitr   get_app_configsr   
get_modelsr   objectsget_for_modelr   _metar   getDoesNotExistnamestrstdoutwritestyleSUCCESSsave)r   argsoptions	app_namesr   	do_create	do_updateappmodelr"   r!   r,   
permissionold_strr   r   r   handle%   sN   



zCommand.handle)__name__
__module____qualname__r   r   r   r<   __classcell__r   r   r   r   r	      s    r	   N)django.appsr   r   django.contrib.auth.managementr   r   django.contrib.auth.modelsr   "django.contrib.contenttypes.modelsr   django.core.management.baser   "django_extensions.management.utilsr   r	   r   r   r   r   <module>   s   