
    6IiN                         S SK r S SKJr   " S S\ R                  5      r " S S5      r " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r	S\
S\\
   4S jrg)    N)HTTPExceptionc                   $    \ rS rSrSrSrSrSrSrg)Roles   adminnocwebhookworkflowrunner N)	__name__
__module____qualname____firstlineno__ADMINNOCWEBHOOKWORKFLOW_RUNNER__static_attributes__r       ?/venv/lib/python3.13/site-packages/keep/identitymanager/rbac.pyr   r      s    E
CG&Or   r   c                   F    \ rS rSr\S 5       r\S\\   S\4S j5       r	Sr
g)Role   c                 6    U R                   R                  5       $ )N)r   lower)clss    r   get_nameRole.get_name   s    ||!!##r   scopesreturnc                     [        U5      n[        U R                  5      nU H;  nXC;   a  M
  UR                  S5      n[        U5      S:w  a    gUu  pgU S3U;  d  M;    g   g)N:   Fz:*T)setSCOPESsplitlen)r   r   required_scopesavailable_scopesscopescope_partsactionresources           r   
has_scopesRole.has_scopes!   sk    f+szz?$E(  ++c*K;1$*F}$44 % r   r   N)r   r   r   r   classmethodr   liststrboolr.   r   r   r   r   r   r      s:    $ $ S	 d  r   r   c                        \ rS rSrSS/rSrSrg)Noc8   read:*execute:workflowsz+read permissions and assign itself to alertr   Nr   r   r   r   r%   DESCRIPTIONr   r   r   r   r5   r5   8   s    +,F?Kr   r5   c                        \ rS rSr/ SQrSrSrg)Admin>   )r7   zwrite:*zdelete:*zupdate:*z	execute:*zdo everythingr   Nr9   r   r   r   r<   r<   >   s    GF!Kr   r<   c                        \ rS rSrSS/rSrSrg)WebhookE   zwrite:alertzwrite:incidentzwrite alerts using API keysr   Nr9   r   r   r   r?   r?   E   s    -.F/Kr   r?   c                        \ rS rSrSS/rSrSrg)WorkflowRunnerJ   zwrite:workflowsr8   zRun workflows using API keysr   Nr9   r   r   r   rB   rB   J   s    !45F0Kr   rB   	role_namer    c                 >   U [         R                  R                  :X  a  [        $ U [         R                  R                  :X  a  [
        $ U [         R                  R                  :X  a  [        $ U [         R                  R                  :X  a  [        $ [        SSU  S3S9e)Ni  zRole z
 not found)status_codedetail)r   r   valuer<   r   r5   r   r?   r   rB   r   )rD   s    r   get_role_by_role_namerI   O   s{    EKK%%%	eiioo	%
	emm))	)	e++11	19+Z0
 	
r   )enumfastapir   Enumr   r   r5   r<   r?   rB   r2   r1   rI   r   r   r   <module>rM      sp      !'DII ' 8@$ @"D "0d 0
1T 1

S 
T#Y 
r   