
    V
ha                     b   S SK JrJrJrJrJr  S SKJr  S SKJ	r	  S SK
JrJrJrJr  S SKJrJrJrJrJr  S SKJr  \" 5       r\R1                  S\S/S	9\" \	R2                  5      \" \5      4S
\S\	R4                  4S jj5       r\R9                  S\S/S	9\R9                  S\S/S	9S SS\" \	R2                  5      \" \5      S4S\S\S\\   S\	R4                  S\4
S jj5       5       r\R9                  S\S/S	9\" \	R2                  5      \" \5      4S\S\	R4                  4S jj5       r \RC                  S\S/S	9\" \	R2                  5      \" \5      4S\S\S\	R4                  4S jj5       r"\RG                  S\S/S	9\" \	R2                  5      \" \5      4S\S\	R4                  4S jj5       r$g)    )	APIRouterDependsRequestHTTPExceptionstatus)Optional)database)Role
RoleCreate
RoleUpdateRoleListResponse)create_role_servicelist_roles_serviceget_role_serviceupdate_role_servicedelete_role_service)get_current_userdetails/Roles)response_modeltagsroledbc                 2  #    UR                  S5      nUR                  S5      nSU l        SU l        US:X  a,  U R                  S SU4;  a  [	        [
        R                  SS9eO%US	:X  a  X@l        O[	        [
        R                  S
S9e[        X5      nU$ 7f)Nroles
account_idFT    z!Super admin roles must be global.status_codedetail   z+You do not have permission to create roles.)getis_system_defaultis_global_accessr   r   r   HTTP_403_FORBIDDENr   )r   r   current_user	user_roleuser_accountcreated_roles         GC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\routers\saas\roles.pycreate_roler,      s        )I##L1L"D DA~??4\"::"55:  ;
 
a&11@
 	

 't0Ls   BB/d
   Nskiplimitsearchrequestc           	        #    UR                  S5      nUS:H  nUS:X  a  S nO0US:X  a  UR                  S5      nO[        [        R                  SS9eUR                  R
                  R                  S5      n	[        X0XX)U5      n
U
$ 7f)Nr   r   r"   r   zInsufficient permissions.r   r-   )r#   r   r   r&   urlpathendswithr   )r/   r0   r1   r   r'   r2   r(   is_saas_onlyr   r$   roles_responses              r+   
list_rolesr9   ,   s        )I>LA~
	a!%%l3
11.
 	
  ((11$7'%V`lmNs   BBz
/{role_id}role_idc                   #    [        X5      nU(       d  [        [        R                  SS9eUR	                  S5      nUR	                  S5      nUS:X  a3  UR	                  S5      S SU4;  a  [        [        R
                  SS9e U$ US:X  a0  UR	                  S5      U:w  a  [        [        R
                  SS9e U$ [        [        R
                  SS9e7f	NzRole not found.r   r   r   r   r   zAccess denied.r"   )r   r   r   HTTP_404_NOT_FOUNDr#   r&   )r:   r   r'   r   r(   r)   s         r+   get_roler>   H   s      G(D(A(AJ[\\  )I##L1LA~88L!$L)AAF,E,EN^__ B K 
a88L!\1F,E,EN^__ 2
 K (A(AJZ[[s   CCrole_updatec                   #    [        X5      nU(       d  [        [        R                  SS9eUR	                  S5      nUR	                  S5      nUS:X  a1  UR	                  S5      S SU4;  a  [        [        R
                  SS9eOLUS:X  a.  UR	                  S5      U:w  a  [        [        R
                  SS9eO[        [        R
                  SS9e[        XU5      nU(       d  [        [        R                  SS9eU$ 7fr<   )r   r   r   r=   r#   r&   r   )r:   r?   r   r'   r   r(   r)   updated_roles           r+   update_rolerB   _   s      G(D(A(AJ[\\  )I##L1LA~88L!$L)AAF,E,EN^__ B	a88L!\1F,E,EN^__ 2 (A(AJZ[[&wR@L(A(AJ[\\s   C=C?c                    #    [        X5      nU(       d  [        [        R                  SS9eUR	                  S5      nUR	                  S5      nUS:X  a1  UR	                  S5      S SU4;  a  [        [        R
                  SS9eOLUS:X  a.  UR	                  S5      U:w  a  [        [        R
                  SS9eO[        [        R
                  SS9e[        X5      nU(       d  [        [        R                  SS9eU$ 7fr<   )r   r   r   r=   r#   r&   r   )r:   r   r'   r   r(   r)   deleted_roles          r+   delete_rolerE   z   s      G(D(A(AJ[\\  )I##L1LA~88L!$L)AAF,E,EN^__ B	a88L!\1F,E,EN^__ 2 (A(AJZ[[&w3L(A(AJ[\\s   C<C>)%fastapir   r   r   r   r   typingr   app.dbr	   app.v1.models.saas.rolemodelr
   r   r   r   app.v1.services.saas.rolesr   r   r   r   r   app.v1.dependencies.authr   routerpostget_mongo_dbMongoDBr,   r#   intstrr9   r>   putrB   deleterE        r+   <module>rV      s#   F F   W W  =	SWI6 #8#8#8923
 76 C 0yAD!1	B "8#8#8923
 SM 		  C B4 LWI> #8#8#8923 ?, LWI> #8#8#8923	 	 ?4 |DyA #8#8#8923 BrU   