
    Id6                     f    d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
 dZd Z G d d	ee      Zy)
    N)BytesIO)
gp_xml_extgp_file_applier)NamedTemporaryFile)	get_bytes
get_strings  
### autogenerated by samba
#
# This file is generated by the vgp_openssh_ext Group Policy
# Client Side Extension. To modify the contents of this file,
# modify the appropriate Group Policy objects which apply
# to this machine. DO NOT MODIFY THIS FILE DIRECTLY.
#

c                 Z   t        j                  |       D cg c]  }t        j                  d|       }}|D cg c]  }|st	        |j                  d            ! }}|j                  d       t        |      dz
  }t         j                  j                  | d|z        S c c}w c c}w )Nz(\d+)   l    0 z%010d_gp.conf)
oslistdirrematchintgroupappendminpathjoin)	directoryfconfigsmconf_idsconf_ids         :/usr/lib/python3/dist-packages/samba/gp/vgp_openssh_ext.pyselect_next_confr   %   s    .0jj.CDrxx!$DGD)06AAAGGAJ6H6OOJ(mAoG77<<	?W#<==	 E6s   B#B(B(c                   "    e Zd Zd Z	 ddZd Zy)vgp_openssh_extc                      y)NzVGP/Unix Settings/OpenSSH )selfs    r   __str__zvgp_openssh_ext.__str__-   s    *    c           
         |D ]J  \  }}t        |       |v s|t        |          j                         D ]  \  }}| j                  |||        L |D ]  }|j                  sd}	t        j
                  j                  |j                  |	      }
| j                  |
      }|sQ|j                  d      }|j                  d      }|j                  d      }|j                  d      D ]Z  }|j                  d      j                  r i }|j                  d      D ]%  }|j                  d      ||j                  d	      <   ' t               }|j                         D ]A  \  }}|j                  d
t        |j                        t        |j                        fz         C | j                  |j                        }| j!                  |j#                               }t        j
                  j%                  |      st	        j&                  |d       d }| j)                  |j                  |||||       |j+                          ]  y )N)MACHINE/VGP/VTLA/SshCfg/SshD/manifest.xmlpolicysettingdata
configfileconfigsectionsectionnamekeyvaluepairvaluekeys   %s %s
  c                     t        |       }t        |d      }|j                  t               |j                  |j	                                t        j                  |d       |j                          |gS )Nwbr.   )r   openwriteintrogetvaluer   chmodclose)cfg_dirrawfilenamer   s       r   applier_funcz:vgp_openssh_ext.process_group_policy.<locals>.applier_funcT   sT    #3G#< 40/51	 (z)r#   )stritemsunapplyfile_sys_pathr   r   r   parsefindfindalltextr   r2   r   generate_attributenamegenerate_value_hashr4   isdirmkdirapplyr6   )r!   deleted_gpo_listchanged_gpo_listr7   guidsettings	attributesshd_configgpoxmlr   xml_confpolicyr'   r(   r)   kvr8   kv
value_hashr:   s                         r   process_group_policyz$vgp_openssh_ext.process_group_policy0   s   . 	?ND(4yH$.6s4y.A.G.G.I ?*I{LLy+>?	?
 $ '	 C  Aww||C$5$5s;::d+!7{{6*!YY|4
%/%7%7%H  M$))-8== !H+33NC D357773C0D!)C ( 0 J1		*#,QVV#4i6G"H#I JJ
 !% 7 7 AI "&!9!9#,,.!IJ77==1%0* JJsxxJ&-IIK; '	 r#   c                 t   i }|j                   r(d}t        j                  j                  |j                   |      }| j	                  |      }|s|S |j                  d      }|j                  d      }|j                  d      }|j                  d      D ]  }	|	j                  d      j                  r|	j                  d      D ]n  }
t        |       |j                         vri |t        |       <   |
j                  d      j                  |t        |          |
j                  d	      j                  <   p  |S )
Nr%   r&   r'   r(   r)   r*   r+   r,   r-   )
r>   r   r   r   r?   r@   rA   rB   r;   keys)r!   rO   outputrP   r   rQ   rR   r'   r(   r)   rS   s              r   rsopzvgp_openssh_ext.rsop`   s   =C77<< 1 137Dzz$'H]]?3F;;v&D<0J!+!3!3O!D . %%m499'//? .B4y5,.s4y)(-- 3t9%bggen&9&9:.. r#   N)z/etc/ssh/sshd_config.d)__name__
__module____qualname__r"   rW   r[   r    r#   r   r   r   ,   s    + -. `r#   r   )r   ior   samba.gp.gpclassr   r   tempfiler   samba.commonr   r   r3   r   r   r    r#   r   <module>rc      s2   " 
  8 ' .		>Gj/ Gr#   