
    q$hE                     L   S SK Jr  S SKJrJr  S SKJr  S SKrS SKJr  S SKrSSK	J
r
JrJrJrJrJrJrJrJrJr  S SKJr  S SKrSS	KJrJrJrJrJrJrJr  S S
KJ r   S SK!J"r"  S SK#r#\S 5       r$\S 5       r%\S 5       r&\S 5       r'\S 5       r(\S 5       r)\S 5       r*S r+S r,g)    )login_required)renderredirect)r   N)JsonResponse   )
getuserslistserv_deactivate_userserv_activate_userget_userget_user_rolsget_rolid_userget_observation_userupd_observation_userupd_rol_userget_profile_img_user)User)user_roluser_piv_user_roluser_permission_Categoryuser_permission_sub_Categoryuser_piv_rol_permissionsuser_permissionsuser_customuser)messages)settingsc                 V   U R                   R                  S5      S:X  a  [        U R                  R                  SS5      5      n[        U R                  R                  SS5      5      n[	        X5      u  p4UR                  SS9nXB-   S-
  U-  n[        UUUS	.5      $ [        U S
5      $ )Nzx-requested-withXMLHttpRequestpage   sized   records)orient)data	last_pagetotal_recordszlistusers.html)headersgetintGETr   to_dictr   r   )requestpage_number	page_sizedf_resultadosr&   data2r%   s          CC:\Repositorios\Repos en GIT\Fox\app\controllers\usersController.py	listusersr2      s    -.2BB'++//&!4545	 (4K'K$%%Y%7 #.2y@	 "*
  	 '+,,    c                 4    [        5       n[        U SSU05      $ )Nzrolesandpermissions.htmlrols)r   r   )r,   r5   s     r1   rolesandpermissionsr6   /   s$    
/D'5t 8. / /r3   c                    [         R                  " S5        [        U5      n[        U5      nUc  [	        SSS.5      $ U(       a7  SUR
                   SUR                   S3n[        SU5        [	        S	US.5      $ [	        SS
S.5      $ )Nr   FUsuario no encontrado.successmessageUsuario  z Desactivado correctamente.MXO: Tz!x Error al desactivar el usuario.)timesleepr   r	   r   
first_name	last_nameprintr,   user_iduserconsultresult_service	messeresps        r1   deactivate_userrI   8   s    JJqM7#K)'2N:RSTT{556a8M8M7NNij	gi CDD:]^__r3   c                    [         R                  " S5        [        U5      n[        U5      nUc  [	        SSS.5      $ U(       a7  SUR
                   SUR                   S3n[        SU5        [	        S	US.5      $ [	        SS
S.5      $ )Nr   Fr8   r9   r<   r=   z Activado correctamente.r>   Tzx Error al activar el usuario.)r?   r@   r   r
   r   rA   rB   rC   rD   s        r1   activate_userrK   I   s    JJqM7#K'0N:RSTT{556a8M8M7NNfg	gi CDD:Z[\\r3   c                    U R                   R                  n[        R                  R	                  US9R                  SSS9n[        R                  R	                  US9R                  SSS9n[        R                  R	                  US9R                  SSS9n[        R                  R	                  US9R                  SSS9R                  5       n[        R                  R	                  US	9R                  S
SS9R                  5       n[        R                  R	                  USS9R                  SSS9n[        R                  R	                  USS9R                  SSS9n[        R                  R	                  USS9R                  SSS9n	[        R                  R	                  SS9R                  SSS9n
[        R                  R	                  USS9R                  SSS9n[        R                  R	                  SS9R                  SSS9n[        [        U5      [        U5      [        U5      UU[        U	5      [        U
5      [        U5      [        U5      S.	5      $ )N)useridroleidTflat)
roleid__inpermissionsid)id__incodenameid	role_namer   )rS   type_permissionsr   r   )rX      )	permissionselements_to_showbutton_to_enabledrol_name_parameterusar_aut_info_iddiv_to_showdiv_alldiv_vardiv_var_all)userrV   r   objectsfiltervalues_listr   r   firstr   r   list)r,   rE   rolesrZ   permission_namesrol_idrol_name	elem_t_shbutton_t_endiv_t_enr`   ra   rb   s                r1   get_user_inforp   Y   sV   llooG %%,,G,<HHX\H]E*2299U9KWWXgnrWsK'//66k6JVVWahlVm&&--W-=II(Y]I^ddfF&&&&1==kPT=U[[]H !((//{UV/WccdnuyczI #**11WX1Yeefpw{e|K''..kTU.VbbcmtxbyH&&--q-AMMj_cMdG&&--[ST-UaablswaxG"**1111EQQR\cgQhK,- O!+.&#H~w-=K(

 
 
r3   c                    [         R                  " U R                  5      nUR                  S5      nUS:X  a  [	        SSS.SS9$ [
        R                  R                  US9R                  S	S
S9n/ / S.n[        R                  R                  5       nU GHC  nUR                  UR                  / S.nS
n[        R                  R                  UR                  S9n	U	 H  n
U
R                  / S.n[         R                  R                  U
R                  S9R#                  S5      nU HI  nUR                  U;   nUR$                  UR&                  US.nU(       a  SnUS   R)                  U5        MK     US   (       d  M  US   R)                  U5        M     US   (       d  GM  U(       a  US   R)                  U5        GM/  US   R)                  U5        GMF     [	        U5      $ )Nid_Rol0FRol no encontrador9     status)rN   rR   TrO   )assigned	revocados)category_namecategory_descriptionpermission_sub_category)subcategory_categoryid)subcategory_namepermisos)permission_subcategoryidorder_show_fronend)permission_namepermission_descriptioncheckedr   r|   ry   rx   )jsonloadsbodyr(   r   r   rd   re   rf   r   allrz   r{   r   rV   r~   r   order_byr   r   append)r,   r$   id_Rol_dataassigned_permissionspermissions_data
categoriescategorycategory_dictall_checked_falsesubcategoriessubcategorysubcategory_dictrZ   
permissionr   permiso_dicts                   r1   get__permissions_dragr      s    ::gll#D((8$Kc:MNWZ[[ 4;;BB+BVbbcry}b~ %'R8
 *11557J %33$,$A$A')
 ! 5<<CC[c[f[fCg(K$/$@$@  +2299S^SaSa9bkk  mA  BK)
$--+?? (2'A'A.8.O.O&  (-% ,33LA *  
++78??@PQ3 )8 233  -44]C ,33MBY \ ())r3   c                     [         R                  " U R                  5      nUR                  S5      nUR                  S5      nUR                  S5      nU(       a  U(       a  U(       d  [	        SSS.SS9$ [
        R                  R                  US	9R                  5       (       d  [	        SS
S.SS9$ [        R                  R                  US9R                  5       (       d  [	        SSS.SS9$ [        R                  R                  US9n[        R                  R                  X%R                  S9R                  5       nU(       a  US:X  a  [	        SSS.SS9$ U(       d  US:X  a  [	        SSS.SS9$ U(       dB  US:X  a<  [        R                  R                  UUR                  S9  [	        SSU-   S-   S.5      $ U(       ad  US:X  a^  [        R                  R                  X%R                  S9R                  5       u  pxUS:  a  [	        SSU-   S-   S.5      $ [	        SSS.SS9$ [	        SSS.SS9$ ! [         R                   a    [	        SSS.SS9s $ [         a#  n	[	        SS[!        U	5       3S.SS9s S n	A	$ S n	A	ff = f)Nrr   r   actionFz!Datos incompletos en la solicitudr9   ru   rv   rU   rt   )r   zPermiso no encontrado)rN   rR   addzPermiso ya estaba asignadoremovezPermiso ya estaba revocadoTz	Permiso: z	 asignador   z	 revocadozError al Revocar el Permisou   Acción no válidazError en el JSONzError interno: i  )r   r   r   r(   r   r   rd   re   existsr   r   rV   createdeleteJSONDecodeError	Exceptionstr)
r,   r$   role_idr   r   permissions_updatepiv_rol_permissions_existdeleted_count_es
             r1   update_permission_roler      s{   1czz',,'((8$((#45(#oVE>a bknoo&&'&299;;E>Q R[^__''...OVVXXE>U V_bcc-5599/9Z$<$D$D$K$K*?*? %L %

&( 	" %5E>Z [dghh(Vx-?E>Z [dghh(Vu_$,,33033 4   D[?=Z]h=h ijj$8);7??FF.C.C  G  fh M q #A^alAl$mnn#B_$`ilmm:NOX[\\ [:LMVYZZ cOCPQF8:TU^abbcsW   A4H8 7<H8 4<H8 1A+H8 H8 7AH8  AH8 H8 +H8 8!J	J$J<JJc                 B   [        5       nSnSnSnSnSnSnU R                  S:X  Gad  U R                  S   nU R                  S   nU R                  S   nU R                  S   nU R                  S   nU R                  S	   n[        R                  R                  US
9R                  5       nU(       aK  [        R                  " U 5      n	U	 H  n
M     [        R                  " U S5        [        U SUUUUUUUS.5      $ [        UUUUSSSS9nUR                  U5        UR                  5         [        R                  R                  US
9nUS:w  a$  [        UR                  US9nUR                  5         [!        UR                  US[#        UR                  5      -   S-   S9nUR                  5         [$        R&                  R)                  [*        R,                  SSS5      n[$        R&                  R)                  [*        R,                  SS[#        UR                  5      5      n[$        R.                  " USS9  [$        R&                  R)                  US5      n[0        R2                  " UU5        [5        SUR                   S35      $ [        U SUUUUUUUS.5      $ )N rs   POST	lastnames
firstnamesemailpassword	selectrolobservationr   Email ya existeznewuser.html)r5   
vlastnamesvfirstnamesvemail	vpassword
vselectrolvobservationr   r   )usernamerA   rB   r   is_superuseris_staff	is_active)rM   rN   zprofile_img/z/1.png)rM   observationsprofile_imgstaticr   z1.pngT)exist_ok
/edituser//)r   methodr   r   rd   re   rg   r   get_messageserrorr   set_passwordsaver(   r   rV   r   r   ospathjoinr   BASE_DIRmakedirsshutilcopyr   )r,   r5   r   r   r   r   r   r   rc   storager   userNew
new_recordnew_record_obssrc_filefolder_path	dest_files                    r1   newuserr      ss   
/DIJEHIK ~~LL-	\\,/
W%<<
+LL-	ll=1||"""/557++G4G NN7$56'> "+#-!&%-&/'2   '% 	D h'IIKll&&U&3GQ.$ZZ&

 !, *,s7::>IN ! ww||H$5$5xPWXH'',,x'8'8(MSVW^WaWaSbcKKKd3[':IKK),jA677 '>!*","!)"+#. r3   c                    [        U5      n[        5       n[        U5      n[        U5      nUS:X  a  Sn[	        U5      nUS:X  a  Sn[        SU5        UR                  nUR                  nUR                  n	Sn
SnUR                  n UR                  S5      nUR                  nU R                  S:X  Ga  U R                  S   nU R                  S   nU R                  S	   nU R                  S
   nU R                  S   nU R                  S   nUUR                  :w  a  [        R                   R#                  US9R%                  US9R'                  5       nU(       aY  [        S5        [(        R*                  " U 5      nU H  nM     [(        R,                  " U S5        [/        U SUUUUUUUUUUS.
5      $  Xl        UUl        UUl        [1        UU5        [3        UU5        U(       a&  UR5                  5       (       a  UR7                  U5        UR9                  5         [(        R,                  " U S5        [;        SUR<                   S35      $ [/        U SUUUU	U
UUUUUUUS.5      $ ! [         a    Un GNf = f! [        R>                   aQ    [(        R*                  " U 5      nU H  nM     [(        R,                  " U S5        [/        U SUUUUUUUUUUS.
5      s $ f = f)Nr   r   r   rs   z%d/%m/%Y, %H:%Mr   r   r   r   r   r   r   rU   zya existe el usuarior   zedituser.html)
r5   r   r   r   r   r   r   rolid
profileimguserIdzUsuario Guardado Correctamenter   r   z'Error al Guardar el Usuario en Servidor)r5   r   r   r   r   r   r   vaccesovcreador   r   r   ) r   r   r   r   r   rC   rB   rA   r   date_joinedstrftime
ValueError
last_loginr   r   r   rd   re   excluderg   r   r   r   r   r   r   stripr   r   r   rV   DoesNotExist)r,   iduserrc   r5   r   r   r   r   r   r   r   r   
dateJoinedcreadoaccesolastnamesnewfirstnamesnewemailnewpasswordnewselectrolnewidobservationnewusertestr   r   s                           r1   edituserr   \  s   FD
/D6"E &f-JQ
&v.Ka	-$IJJJEHI!!J$$%67 __F ~~||K0\2<<(ll:. k2 m4tzz!||***:BBfBMSSUH,-"//8 A !w(9: g ".#0!)%0&4'5!&%/!'
 &	)N!DJ+DO !7/{0022!!+. IIKNN7$DEj	344* '?!*","!)"+#.$$"!+# Y  t    	++G4G NN7$MN'? ".#0!)%0&4'5!&%/!'
 	s&   I, 9BI? ,I<;I<?A"K$#K$)-django.contrib.auth.decoratorsr   django.shortcutsr   r   r   django.httpr   r   services.usersServicer   r	   r
   r   r   r   r   r   r   r   django.contrib.auth.modelsr   r?   Models.user_modelsr   r   r   r   r   r   r   django.contribr   django.confr   r   r2   r6   rI   rK   rp   r   r   r   r    r3   r1   <module>r      s    9 - % 	 $   
 ,  q  q  q #    - -2 / / ` `  ] ] % %P B* B*L 2c 2cjZztr3   