
    1ih                     p    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  e       Z G d de      Zy	)
    )Response)APIView)get_user_modelstatus)CompanyPermission)IsAuthenticatedc                        e Zd ZdZg Zd Zd Zy)UserStatusViewz,Simple endpoint to set user is_active statusc                 
   | j                   }|j                  }|j                  j                  d      xs |j                  j                  d      }	 t        |      }|r|j                  |k(  rg S t        d      gS #  d }Y %xY w)Nuser_id
edit_users)requestuserdatagetquery_paramsintidr   )selfr   r   r   s       D/var/www/html/dp2/backend_v2.1/server/apps/core/views/user_status.pyget_permissionszUserStatusView.get_permissions   s{    ,,||,,""9-T1E1E1I1I)1T	'lG tww')I!,/00	Gs   A< <Bc                    |j                   j                  d      xs |j                  j                  d      }d } ||j                   j                  d|j                  j                  d                  } ||j                   j                  d|j                  j                  d                  }|st        ddit        j
                        S ||t        dd	it        j
                        S 	 t        j                  j                  |
      }|j                  j                  sxt        |j                  dd      }|st        ddit        j                        S |j                  |j                  j                        st        ddit        j                        S |du r)|j                  rt        ddit        j                        S |du r@|j                   |j                  j                   k(  rt        ddit        j                        S g }|%t#        |      |_        |j'                  |rdnd       |%t#        |      |_        |j'                  |rdnd       |j+                          t        ddj-                  |       d|j                   |j$                  |j(                  dt        j.                        S # t        j                  $ r  t        ddit        j                        cY S w xY w)z-Set user is_active and/or is_available statusr   c                 $    | dv r| S | dv ry| dv ryy )N)TF)trueTrue1   T)falseFalse0r   F )values    r   get_boolz%UserStatusView.post.<locals>.get_bool$   s*    %0022    	is_activeis_availableerrorzuser_id is requiredr   NzBAt least one of is_active or is_available is required (true/false))r   zUser not foundactive_companyz#Your user has no active company setz+You can only manage users from your companyFz$Cannot deactivate superuser accountsz&You cannot deactivate your own account	activateddeactivatedzmade availablezmade unavailablezUser z, z successfully)messager   r&   r'   )r   r   r   r   r   HTTP_400_BAD_REQUESTUserobjectsDoesNotExistHTTP_404_NOT_FOUNDr   is_superusergetattrHTTP_403_FORBIDDENbelongs_to_companyr)   r   boolr&   appendr'   savejoinHTTP_200_OK)	r   r   r   r$   r&   r'   r   r)   status_changess	            r   postzUserStatusView.post    s   ,,""9-T1E1E1I1I)1T	 W\\--k7;O;O;S;ST_;`ab	 0 0AUAUAYAYZhAi jk.113 3 !5]113 3	1<<##w#/D ||(($W\\3CTJN!B!D!44  **7<<+F+FGJ! 335 5 $"3"3?//1 1 $''W\\__"<A//1 1  !)_DN!!+N# $\ 2D!!l"2HZ[		tyy89Gww --	

 $$& 	&Q    	1)//1 1	1s   3 K 0K65K6N)__name__
__module____qualname____doc__permission_classesr   r<   r"   r%   r   r   r      s    61 I&r%   r   N)rest_framework.responser   rest_framework.viewsr   django.contrib.authr   rest_frameworkr   apps.permissions.permissionsr   rest_framework.permissionsr	   r.   r   r"   r%   r   <module>rH      s/    , ( . ! : 6 ]&W ]&r%   