
    H/i5                     d   d dl mZ d dlmZ d dlmZ d Zd dlmZ d dl	m
Z
mZ d dlmZ d dl mZ e
d	             Zd dlmZ d d
lmZmZ d dlmZ d Zd Ze
d             Ze
d             Ze
d             Ze edg          d                         Ze edg          d                         ZdS )    )render)Usuario)settingsc                     ddl m} |j                            d          j        }ddlm} |j                                        }t          | d||d          S )Nr   )TipoUsuariotipo   PoliticaContrasenazusuarios_sa.html)role_choicespolicies)
login.modelsr   _meta	get_fieldchoicesmodelsr   objectsallr   )requestr   r   r   r   s        3/var/www/html/Desarrollo/vibra/usuarios_sa/views.pyusuarios_sar      s|    (((((( $..v66>L******!)--//H'-$0 0       )JsonResponse)require_POSTrequire_http_methods)csrf_exempt)get_object_or_404c                     	 t          t          |          }|                                 t          ddd          S # t          $ r+}t          dt          |          dd          cY d }~S d }~ww xY w)NidTz Usuario eliminado correctamente.successmessageF  status)r   r   deleter   	Exceptionstr)r   
usuario_idusuarioes       r   eliminar_usuarior-      s    O#G
;;;9[\\]]] O O O#a&&AA#NNNNNNNNNOs   ;> 
A3 A.(A3.A3)r   r   c                 n   t           j                            ddddddddd	d
ddd          }g }|D ]r}|d         }|r|                    d          r!|                    dt
          j                  }n|                    d          sk|                    t
          j                  sL|                    d          }|                    d          rt
          j         | }nt
          j         d| }|                    |d         |d         |d         |d         pd|d         pd||d         |d         |d	         pd|d
         pd|d         pd|d         r|d         	                    d          nd|d         r|d         	                    d          ndd           tt          d|id          S )Nr    nombreemailcargoareaprofileestado	docnumbertipo_contratacionjefecorreo_jefefecha_contratacionfecha_cumplez	/uploads/http/zprofile/ z%Y-%m-%d)r    r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   usersF)safe)r   r   values
startswithreplacer   	MEDIA_URLlstripappendstrftimer   )r   usuarios
users_datar+   profile_urlclean_profiles         r   	api_usersrK   %   s   %%h&)X(&-n H J  i( 	Q%%k22 Q)11+x?QRR ++F33 QK<R<RS[Se<f<f Q + 2 23 7 7 ++J77 Q%-%7"H"H"HKK%-%7"P"P"P"PK$-h'W%W%+FO)r"h' -!()<!=!CFO)r"=17RX_`tXu"}'*>"?"H"H"T"T"T{}LSTbLckGN3<<ZHHHik
 
 	 	 	 	  *-E::::r   c                     t          t          |          }t          |j                            dd                    }t          d|i          S )Nr   r   T)flatroles)r   r   listtiposvalues_listr   )r   r*   r+   rN   s       r   get_user_rolesrR   N   sI    J777G**6*==>>E%()))r   c                 `   dd l }	 |                    | j                  }|                    d          }|                    d          }t	          d| d| d|            t          t          |          }|dk    r}|j                            |	          	                                s<t	          d
| d|j
                    t          j                            ||           nat	          d| d           nM|dk    rGt	          d| d|j
                    |j                            |	                                           t          ddi          S # t           $ rJ}t	          dt#          |                      t          dt#          |          dd          cY d }~S d }~ww xY w)Nr   roleactionzDEBUG: update_user_role user=z role=z action=r   add)r   zDEBUG: Creating role z
 for user )r+   r   zDEBUG: Role z already existsremovezDEBUG: Removing role r"   Tz"DEBUG: Error in update_user_role: Fr!   r$   r%   )jsonloadsbodygetprintr   r   rP   filterexistsr5   r   r   creater'   r   r(   r)   )r   r*   rX   data	role_coderU   r+   r,   s           r   update_user_rolerb   S   s   KKKOzz',''HHV$$	(##[j[[	[[SY[[\\\#G
;;;U??=''Y'77>>@@ AViVV7CTVVWWW#**7*KKKK?Y???@@@@xR)RRw?PRRSSSM  i 0077999Y-... O O O;3q66;;<<<#a&&AA#NNNNNNNNNOs   EE 
F-#?F("F-(F-c                    dd l }	 |                    | j                  }|                    d          }t	          d| d|            t          t          |          }t          |          |_        |	                                 t          ddi          S # t          $ rJ}t	          dt          |                      t          d	t          |          d
d          cY d }~S d }~ww xY w)Nr   r&   zDEBUG: update_user_status user=z status=r   r"   Tz$DEBUG: Error in update_user_status: Fr!   r$   r%   )rX   rY   rZ   r[   r\   r   r   intr4   saver   r(   r)   )r   r*   rX   r`   
new_statusr+   r,   s          r   update_user_statusrg   o   s   KKKOzz',''XXh''
P
PPJPPQQQ#G
;;;ZY-... O O O=SVV==>>>#a&&AA#NNNNNNNNNOs   BB 
C-#?C("C-(C-c                    dd l }ddlm} 	 |                    | j                  }t	          t
          |          }|                    d|j                  |_        |                    d|j                  |_        |                    d|j	                  |_	        |                    d|j
                  |_
        |                    d          }|r||_        |                                 t          d	d
i          S # t          $ rJ}t          dt!          |                      t          dt!          |          dd          cY d }~S d }~ww xY w)Nr   )datetimer   r/   r0   r7   r8   r:   r"   Tz%DEBUG: Error in update_user_details: Fr!   r$   r%   )rX   ri   rY   rZ   r   r   r[   r/   r0   r7   r8   r:   re   r   r(   r\   r)   )r   r*   rX   ri   r`   r+   r:   r,   s           r   update_user_detailsrj      sY   KKK!!!!!!Ozz',''#G
;;; (GN;;'-88xx55"hh}g6IJJxx// 	0#/G Y-... O O O>c!ff>>???#a&&AA#NNNNNNNNNOs   C2C? ?
E	?EEEPOSTc                    dd l }ddlm} 	 |                    | j                  }|                    d          }|                    d          }|j                            |          }||_        |                                 t          ddd	          S # |j
        $ r t          d
dd	          cY S t          $ r)}t          d
t          |          d	          cY d }~S d }~ww xY w)Nr   r	   r
   r    r&   r   Tu   Política actualizada.r!   F   Política no encontrada.)rX   r   r   rY   rZ   r[   r   r4   re   r   DoesNotExistr(   r)   )r   rX   r   r`   	policy_idrf   policyr,   s           r   update_policy_statusrq      s    KKK******Czz',''HHTNN	XXh''
#+//9/=="9QRRSSS* W W W:TUUVVVVV C C C#a&&AABBBBBBBBCs$   BB C(6	C(?C#C(#C(c                 N   dd l }ddlm} 	 |                    | j                  }|                    d          }|                    d          }|                    d          }|j                            |          }|t          |          |_        |t          |          |_	        |
                                 t          dd	d
          S # |j        $ r t          ddd
          cY S t          $ r+}t          dt          |          d
d          cY d }~S d }~ww xY w)Nr   r	   r
   r    attemptstimer   Tu   Configuración actualizada.r!   Frm   r$   r%   )rX   r   r   rY   rZ   r[   r   rd   intentos_maximostiempo_bloqueore   r   rn   r(   r)   )	r   rX   r   r`   ro   rs   rt   rp   r,   s	            r   update_policy_configrw      sV    KKK******Ozz',''HHTNN	88J''xx#+//9/==&)(mmF#$'IIF!9VWWXXX* W W W:TUUVVVVV O O O#a&&AA#NNNNNNNNNOs$   CC D$0	D$9 DD$D$N)django.shortcutsr   r   r   django.confr   r   django.httpr   django.views.decorators.httpr   r   django.views.decorators.csrfr   r   r-   r   rK   rR   rb   rg   rj   rq   rw    r   r   <module>r~      s   # # # # # #                           % $ $ $ $ $ K K K K K K K K 4 4 4 4 4 4 . . . . . .O O O % $ $ $ $ $ - - - - - - - -            '; '; ';R* * *
 O O O6 O O O" O O O4 vhC C   C$ vhO O   O O Or   