
    	]j9                         d Z ddlZddl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 ddlmZ dd	lmZ dd
lmZ ddlmZ d Zd Zd Zd Zd Zy)zThis file and its contents are licensed under the Apache License 2.0. Please see the included NOTICE for copyright information and LICENSE for a copy of the license.
    N)time)	load_func)forms)settings)auth)get_image_dimensions)redirect)reverse)Organizationc                 z    t        t        j                               dd dz   |z   }t        j                  dz   |z   S )Nr      -/)struuiduuid4r   AVATAR_PATH)instancefilenames     M/root/env/lib/python3.12/site-packages/label_studio/users/functions/common.pyhash_uploadr      s9    4::< 1%+h6H#%00    c                    t        | j                               }|sy t        | j                               d   \  }}t        |      \  }}|r|st        j                  d      dx}}||kD  s||kD  rt        j                  d|d|d      g d}|j
                  }	t        j                  j                  |	      d   j                  d	      j                         }
|
|vrt        j                  d
      |j                  j                  d      \  }}|dk(  r|j                         |v st        j                  d      d}t        |      |kD  r't        j                  dt        |dz        z   dz         |S )Nr   z!Can't read image, try another onei  zPlease use an image that is z x z pixels or smaller.)jpegjpggifpng   .zIPlease upload a valid image file with extensions: JPEG, JPG, GIF, or PNG.r   imagez$Please use a JPEG, GIF or PNG image.i   z Avatar file size may not exceed i   z kb)listitemsr   r   ValidationErrornameospathsplitextlstriplowercontent_typesplitlenr   )filesimages_avatarwh	max_width
max_heightvalid_extensionsr   extmainsubmax_sizes                 r   check_avatarr:      s`   %++- FU[[]#A&IAv'DAqA##$GHH "!I
9}J##`iku$vww4{{H
''

8
$Q
'
.
.s
3
9
9
;C
""##$opp ##))#.ID#GO		/? ?##$JKK H
6{X##$FXX\_I]$]`e$effMr   c                    |j                         }|j                  j                  d      d   |_        |j                          t        j
                  j                         r0t        j
                  j                         }|j                  |       nt	        j                  |d      }||_
        |j                  dg       |j                  |j                  dd|j                  j                  dd	      d
| _        |j                  j                  dd	      dk(  r)|j                  j                  dd	      | j                  d<   |r|n
t        d      }t!        | |d       t#        |      S )zSave user instance to DB@r   zLabel Studio)
created_bytitleactive_organization)update_fieldsr   how_find_us )emailallow_newsletterszupdate-notificationsznew-userrA   Other	elaboratezprojects:project-indexz)django.contrib.auth.backends.ModelBackend)backend)saverC   r+   usernamer   objectsexistsfirstadd_usercreate_organizationr?   rD   cleaned_datagetadvanced_jsonr
   loginr	   )request	next_page	user_formuserorgredirect_urls         r   	save_userrY   :   s0   >>DJJ$$S)!,DMIIK""$""((*T..$nU"DII23I4 !33 ! --11-DG !!-4?-6-C-C-G-GUW-Xk* )9w7O/PL	'4!LML!!r   c                 L    t        t        j                        } || ||      }|S )z(Register a new user for POST user_signup)r   r   	SAVE_USER)rS   rU   organization_formrT   rY   responses         r   proceed_registrationr^   W   s'     (,,-I)Y7HOr   c                 b    t               | j                  d<   t        j                  | g|i |S )N
last_login)r   sessionr   rR   )rS   argskwargss      r   rR   rR   `   s+    $(FGOOL!::g////r   )__doc__r%   r   r   core.utils.commonr   djangor   django.confr   django.contribr   django.core.files.imagesr   django.shortcutsr	   django.urlsr
   organizations.modelsr   r   r:   rY   r^   rR    r   r   <module>rn      sE    	   '     9 %  -1
!H":0r   