
    h                     t    d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 ddlmZ  e       Z G d d	e      Zy
)    )apps)get_user_model)_get_all_permissions)Group
Permission)ContentType   )SubcommandsCommandc                        e Zd ZdZdZd Zd Zy)SyncPermissionszYSets the permissions for all plugins to those of djangocms_frontend.models.FrontendUIItemsync_permissionsc                 .    |j                  dddg       y )Nscopeusersgroups)choices)add_argument)selfparsers     s/home/dcms/DCMS/lib/python3.12/site-packages/djangocms_frontend/management/commands/subcommands/sync_permissions.pyadd_argumentszSyncPermissions.add_arguments   s    Ggx-@A    c                    |d   r'| j                   j                  d       t        d      }nd}|dk7  r5| j                   j                  | j                  j	                  d             y t        j                         D cg c]   }|j                  j                  d      s|" }}|D cg c]  }|j                  dk(  s| c}d   }|j                  |       t        j                  j                  |j                  j                  |j                  j                   j#                         	      }t$        j                  j'                  |
      }d|d   v rt(        j                  j+                         D ]  }	| j                   j                  | j                  j-                  d|	              |j'                  |	      }
|
D cg c]   }|j.                  j1                  d      d   " }
}|
rF| j                   j                  | j                  j3                  ddj5                  |
                    |D ]  }t7        |j                        }|D ]  \  }}|j1                  d      d   |
v }t        j                  j                  |j                  j                  |j                  j                   j#                         	      }t$        j                  j9                  ||t;        |            \  }}|r7| j                   j                  | j                  j=                  d|              |r|	j>                  j'                  |j.                  |      r| j                   j                  | j                  j3                  d| d|	              |	j>                  jA                  |       ^|	j>                  j'                  |j.                  |      s| j                   j                  | j                  j=                  d| d|	              |	j>                  j                  |         |	jC                           d|d   v rtD        j                  j+                         D ]  }| j                   j                  | j                  j-                  d|              |j'                  |      }
|
D cg c]   }|j.                  j1                  d      d   " }
}|
rF| j                   j                  | j                  j3                  ddj5                  |
                    |D ]  }t7        |j                        }|D ]  \  }}|j1                  d      d   |
v }t        j                  j                  |j                  j                  |j                  j                   j#                         	      }t$        j                  j9                  ||t;        |            \  }}|r|jF                  j'                  |j.                  |      r| j                   j                  | j                  j3                  d| d|              |jF                  jA                  |       $|jF                  j'                  |j.                  |      sM| j                   j                  | j                  j=                  d| d|              |jF                  j                  |         |jC                           | j                   j                  | j                  j-                  d             y c c}w c c}w c c}w c c}w )Ninteractivez}This command changes permissions for djangocms-frontend plugins.
Changes cannot be undone. Are you sure you want to proceed?
z+Type 'yes' to continue, or 'no' to cancel: yeszAborted.zdjangocms_frontend.FrontendUIItemr   )	app_labelmodel)content_typer   r   zSnycing )user_z... has z, )name)codenamer   defaultszCreated permission )r#   r   zAdded z for zRemoved r   )groupzFinished syncing permissions)$stdoutwriteinputstyleERRORr   
get_models
__module__
startswith__name__remover   objectsget_metar   object_namelowerr   filterUserallSUCCESSr#   splitNOTICEjoinr   get_or_createdictWARNINGuser_permissionsaddsaver   permissions)r   argsoptionsok_to_deletem
dcf_modelsreference_modelctypepermission_setr    reducedpermr   permsr"   oknew_permcreatedr%   s                      r   handlezSyncPermissions.handle   s*   =!KK
 !!NOL L5 KKdjj..z:;!%!2eAall6M6MNc6dae
e&0SAJJBR4R1STUV/*##''%++55!''3399; ( 
 $++222Fgg&&((* !!$**"4"4xv5F"GH(//T/:CJK44==..s3A6KKKK%%djj&7&7(499WCUBV8W&XY' GE0=E&+ G
d!ZZ_Q/7: + 3 3 7 7&+kk&;&;"'++"9"9"?"?"A !8 ! -7,>,>,L,L%)).%)t_ -M -)'
 # KK--djj.@.@CVW_V`Aa.bc#'#8#8#?#?IZIZin#?#o $ 1 1$**2C2CfXJV[\`[aDb2c d $ 5 5 9 9( C#44;;XEVEVej;k $ 1 1$**2D2DxPXzY^_c^dEe2f g $ 5 5 < <X F)GG. 		;< ww''**, !!$**"4"4xw5G"HI(//e/<CJK44==..s3A6KKKK%%djj&7&7(499WCUBV8W&XY' CE0=E&+ C
d!ZZ_Q/7: + 3 3 7 7&+kk&;&;"'++"9"9"?"?"A !8 ! -7,>,>,L,L%)).%)t_ -M -)'
 #(#4#4#;#;XEVEVej#;#k $ 1 1$**2C2CfXJV[\a[bDc2d e % 1 1 5 5h ?$0077ARARaf7g $ 1 1$**2D2DxPXzY^_d^eEf2g h % 1 1 8 8 B%CC* 

7: 	$**,,-KLMK fS L> Ls$   ? \< \<*]?]%] %]N)r.   r,   __qualname__helpcommand_namer   rQ    r   r   r   r      s    fD%LBTNr   r   N)django.appsr   django.contrib.authr   django.contrib.auth.managementr   django.contrib.auth.modelsr   r   "django.contrib.contenttypes.modelsr   baser
   r6   r   rU   r   r   <module>r\      s0     . ? 8 : $[N( [Nr   