
    $g                     B    d dl mZ ddlmZmZ ddgZd
dZd
dZd
d	ZdS )    )uuid4   )module_memberslugifyusernameemailNc                 2   d|                     dt                    vrd S | j        }|s|                      dd          }|                      dd          }|j                                        }	|                      dd          }
|                      dd	          }d
 }|r4|                      d          }|rt          |          }n|j        j        }n|}|
r.|                      d          }|rt          |          nt          }n|}|r|                    d          r	|d         }n1|                    d          r	|d         }nt                      j
        }|	|d |	|z
           n|} | ||d |	                             }|r|j                            |          rW|t                      j
        d |         z   } | ||d |	                             }|<|j                            |          Wn|j                            |          }d|iS )Nr   USER_FIELDSUSERNAME_IS_FULL_EMAILFUUID_LENGTH   SLUGIFY_USERNAMESCLEAN_USERNAMESTc                     | S N )vals    Y/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/social_core/pipeline/user.pyidentity_funcz#get_username.<locals>.identity_func   s    J    CLEAN_USERNAME_FUNCTIONSLUGIFY_FUNCTIONr   )r   )settingr
   storageuserusername_max_lengthr   clean_usernamer   getr   hexuser_existsget_username)strategydetailsbackendr   argskwargsr   email_as_usernameuuid_length
max_length
do_slugifydo_cleanr   override_clean
clean_funcoverride_slug	slug_funcr   short_usernamefinal_usernames                       r   r!   r!      so   DDDDG -9$,,-EuMM&&}b99\5577
%%&95AA
##$5t<<	 	 	  	'%--.GHHN 9*>::

$\8

&J 	&$,,-?@@M8ERm4447II%I 	#W!5!5 	#w'HH[[$$ 	#z*HHww{H 5?4JH/zK//00PX 	 #::h{
{.C#D#DEE ! 	JGL$<$<n$<$U$U 	J%L[L(AAH&Yzz(;J;2G'H'HIIN ! 	JGL$<$<n$<$U$U 	J !22488''r   c                     |rddiS fd|                     dt                    D             }|sd S d | j        di |dS )Nis_newFc           	      d    i | ],}|                     |                     |                    -S r   )r   ).0namer#   r&   s     r   
<dictcomp>zcreate_user.<locals>.<dictcomp>B   sE        	fjjw{{40011  r   r
   T)r3   r   r   )r   r
   create_user)r"   r#   r$   r   r%   r&   fieldss    `   ` r   r8   r8   >   s     !%      OOM;??  F  $8H$8$B$B6$B$BCCCr   c                 B   |sdS d}|                      d          du rd}nd}|t          |                      dg                     z   }|                      di |          }|                                D ]\  }	}
|                    |	|	          }	|
t	          ||	          r|	|v r2t          ||	d          }||
k    rJt          |                      d	g                     }|	|v r|rtd}t          ||	|
           |r!| j        j        	                    |           dS dS )
z-Update user details using data from provider.NF NO_DEFAULT_PROTECTED_USER_FIELDSTr   )r   idpkr   password	is_activeis_staffis_superuserPROTECTED_USER_FIELDSUSER_FIELD_MAPPINGIMMUTABLE_USER_FIELDS)
r   tupleitemsr   hasattrgetattrsetattrr   r   changed)r"   r#   r$   r   r%   r&   rJ   	protectedfield_mappingr6   valuecurrent_valueimmutable_fieldss                r   user_detailsrP   L   sk    G :;;tCC			
	 E("2"23JB"O"OPPPI $$%92wGGM}} # #e  t,,=d 3 3=ty7H7HdD11E!! !1!12I2!N!NOO####dE"""" ,%%d+++++, ,r   r   )	uuidr   utilsr   r   r
   r!   r8   rP   r   r   r   <module>rS      s          * * * * * * * *7#3( 3( 3( 3(lD D D D0, 0, 0, 0, 0, 0,r   