
    %hE                     L   d dl mZ d dlmZmZ d dlmZ d dlZd dlmZ d dlZddl	m
Z
mZmZmZmZmZmZmZmZmZ d dlmZ d dlZdd	lmZmZmZmZmZmZmZ d d
lm Z  d dl!m"Z" d dl#Z#ed        Z$ed        Z%ed        Z&ed        Z'ed        Z(ed        Z)ed        Z*d Z+d Z,y)    )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                 `   | j                   j                  d      dk(  rt        | j                  j                  dd            }t        | j                  j                  dd            }t	        ||      \  }}|j                  d      }||z   dz
  |z  }t        |||d	      S t        | d
      S )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          7/var/www/html/planif/app/controllers/usersController.py	listusersr2      s    -.2BB'++//&!4545	 (4K'K$}%%Y%7 #Y.2y@	 "*
  	 '+,,    c                 4    t               }t        | dd|i      S )Nzrolesandpermissions.htmlrols)r   r   )r,   r5   s     r1   rolesandpermissionsr6   /   s$    
/D'5t 8. / /r3   c                    t        j                  d       t        |      }t        |      }|t	        ddd      S |r7d|j
                   d|j                   d}t        d|       t	        d	|d      S t	        dd
d      S )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                    t        j                  d       t        |      }t        |      }|t	        ddd      S |r7d|j
                   d|j                   d}t        d|       t	        d	|d      S t	        dd
d      S )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                 L   | j                   j                  }t        j                  j	                  |      j                  dd      }t        j                  j	                  |      j                  dd      }t        j                  j	                  |      j                  dd      }t        j                  j	                  |      j                  dd      j                         }t        j                  j	                  |	      j                  d
d      j                         }t        j                  j	                  |d      j                  dd      }t        j                  j	                  |d      j                  dd      }t        j                  j	                  |d      j                  dd      }	t        j                  j	                  d      j                  dd      }
t        j                  j	                  |d      j                  dd      }t        j                  j	                  d      j                  dd      }t        t        |      t        |      t        |      ||t        |	      t        |
      t        |      t        |      d	      S )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                    t        j                  | j                        }|j                  d      }|dk(  rt	        dddd      S t
        j                  j                  |      j                  d	d
      }g g d}t        j                  j                         }|D ],  }|j                  |j                  g d}d
}t        j                  j                  |j                        }	|	D ]  }
|
j                  g d}t         j                  j                  |
j                        j#                  d      }|D ]B  }|j                  |v }|j$                  |j&                  |d}|rd}|d   j)                  |       D |d   s|d   j)                  |        |d   s|r|d   j)                  |       |d   j)                  |       / t	        |      S )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  ,C%33$,$A$A')
 ! 5<<CC[c[f[fCg( 	RK$/$@$@  +2299S^SaSa9bkk  mA  BK) B
$--+?? (2'A'A.8.O.O&  (-% ,33LAB  
+78??@PQ3	R8 23  -44]C ,33MBY,C\ ())r3   c                 
   	 t        j                  | j                        }|j                  d      }|j                  d      }|j                  d      }|r|r|st	        dddd      S t
        j                  j                  |	      j                         st	        dd
dd      S t        j                  j                  |      j                         st	        dddd      S t        j                  j                  |      }t        j                  j                  ||j                        j                         }|r|dk(  rt	        dddd      S |s|dk(  rt	        dddd      S |sD|dk(  r?t        j                  j                  ||j                         t	        dd|z   dz   d      S |rj|dk(  ret        j                  j                  ||j                        j                         \  }}|dkD  rt	        dd|z   dz   d      S t	        dddd      S t	        dddd      S # t         j                  $ r t	        dddd      cY S t        $ r&}	t	        ddt!        |	       dd      cY d }	~	S d }	~	ww xY w)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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 M1 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   A'H/ *=H/ (=H/ &A/H/ H/ -AH/ 3AH/ H/ H/ /#JJI=7J=Jc                 L   t               }d}d}d}d}d}d}| j                  dk(  rj| j                  d   }| j                  d   }| j                  d   }| j                  d   }| j                  d   }| j                  d	   }t        j                  j                  |
      j                         }|rGt        j                  |       }	|	D ]  }
 t        j                  | d       t        | d|||||||d      S t        ||||ddd      }|j                  |       |j                          t        j                  j                  |
      }|dk7  r't        |j                  |      }|j                          t!        |j                  |dt#        |j                        z   dz         }|j                          t$        j&                  j)                  t*        j,                  ddd      }t$        j&                  j)                  t*        j,                  ddt#        |j                              }t%        j.                  |d       t$        j&                  j)                  |d      }t1        j2                  ||       t5        d|j                   d      S t        | d|||||||d      S )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      sx   
/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                    t        |      }t               }t        |      }t        |      }|dk(  rd}t	        |      }|dk(  rd}t        d|       |j                  }|j                  }|j                  }	d}
d}|j                  }	 |j                  d      }|j                  }| j                  dk(  r| j                  d   }| j                  d   }| j                  d	   }| j                  d
   }| j                  d   }| j                  d   }||j                  k7  rt        j                   j#                  |      j%                  |      j'                         }|rUt        d       t)        j*                  |       }|D ]  } t)        j,                  | d       t/        | d||||||||||d
      S 	 ||_        ||_        ||_        t1        ||       t3        ||       |r!|j5                         r|j7                  |       |j9                          t)        j,                  | d       t;        d|j<                   d      S t/        | d||||	|
|||||||d      S # t        $ r |}Y w xY w# t        j>                  $ rM t)        j*                  |       }|D ]  } t)        j,                  | d       t/        | d||||||||||d
      cY S w xY w)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!&%/!'
 &	)DN!DJ+DO !7/{002!!+. IIKNN7$DEj	344* '?!*","!)"+#.$$"!+# Y  t    	++G4G NN7$MN'? ".#0!)%0&4'5!&%/!'
 	s&   I 2B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   