
    vgq                     L   d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZmZ ddlmZmZmZmZ ddlmZ dd	lmZ dd
lmZmZmZ ddlmZmZmZmZ ddl m!Z! ddl"m#Z# ddl$m%Z%m&Z&m'Z'm(Z(m)Z) ddl*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6  G d d      Z7 G d d      Z8y)z
middleware.py
    )apps)Q)HttpResponseHttpResponseNotAllowed)redirectrender)AssetAssignmentAssetRequest)
AttendanceAttendanceActivityAttendanceOverTimeWorkRecords)
AllCompany)HorillaCompanyManager)CompanyShiftRequestWorkTypeRequest)DisciplinaryActionEmployeeEmployeeBankDetailsEmployeeWorkInformation)Ticket)DocumentRequest)AvailableLeaveCompensatoryLeaveRequestLeaveAllocationRequestLeaveRequestRestrictLeave)Offboarding)ContractLoanAccountPayslipReimbursement
WorkRecord)EmployeeObjective)	CandidateRecruitmentc                       e Zd ZdZd Zd Zy)CompanyMiddlewarez"
    company middleware class
    c                     || _         y Nget_responseselfr-   s     #/var/www/horilla/base/middleware.py__init__zCompanyMiddleware.__init__4   
    (    c                    t        |dd      r|j                  j                  sd }	 t        |j                  j                  j                  dd       }|j
                  j                  d      rf|j
                  j                  d      dk7  rHt        j                  j                  |j
                  j                  d            j                         }n|rt|j
                  j                  d      dk7  rV|j                  |j
                  d<   |j                  |j                  j                  d|j                  d|j
                  d	<   na|s_d|j
                  d<   t               }|j                  |j                  j                  |j                   |j                  d|j
                  d	<   g d
}t#        j$                         D cg c]  }|j&                  j(                  |v r| }}t*        t,        t.        t0        t2        t4        t6        t8        t:        t<        t>        t@        tB        tD        tF        tH        tJ        tL        tN        tP        tR        tT        tV        tX        tZ        t\        t^        t`        g}|rZ|D ]T  }||v rt        |dd       r|jc                  dte        |             2tg        |j                  th              sM|j                  jj                  sd|jc                  dte        di |j                  jj                  |i       t        |dd       r*|jc                  dte        |      te        d      z         tg        |j                  th              s|j                  jj                  s|jc                  dte        di |j                  jj                  |ite        di |j                  jj                   ddiz         W | jm                  |      }|S #  Y xY wc c}w )NuserF
company_idselected_companyall)idz
My company)companyicontextr9   selected_company_instance)recruitmentemployee
onboarding
attendanceleavepayrollassetpmsbasehelpdeskoffboardinghorilla_documentscompany_filter)r6   T)company_id__isnull__isnull )7getattrr5   is_anonymousemployee_getemployee_work_infosessiongetr   objectsfilterfirstr9   r:   r;   urlr   r<   r   
get_models_meta	app_labelr   r   r   r   r   r   r'   r&   r   r   r   r
   r	   r   r   r   r    r$   r!   r#   r   r   r   r"   r   r   r   r%   add_to_classr   
isinstancer   related_company_fieldr-   )	r/   requestr6   all_company
app_labelsmodel
app_modelscompany_modelsresponses	            r0   __call__zCompanyMiddleware.__call__7   s\   7FE*7<<3L3LJ$LL--@@,PT
 ##$67OO''(:;uD$__33**+=> 4 %'   3 34F G5 P6@mm 23)11&OO//($--	@ ;<  6; 23(l*22',,00',,%..	@ ;<J  "__.;;((J6 J  '#"&(""!9N@   # ."5,=!.. 0!z2J 'u}}6KL % C C!.. 0 ! VU]]%H%H*$U V
 #5,=!.. 0 !Z 81PT;U U
 'u}}6KL % C C!.. 0 ! VU]]%H%H*$U V"# #"+0==+N+N*Ox(XZ^'&#"!"7#J $$W-oRs   +O' !O/'O,N)__name__
__module____qualname____doc__r1   re   rM   r3   r0   r)   r)   /   s    )@r3   r)   c                       e Zd Zd Zd Zy)ForcePasswordChangeMiddlewarec                     || _         y r+   r,   r.   s     r0   r1   z&ForcePasswordChangeMiddleware.__init__   r2   r3   c                    g d}|j                   j                  d      |v r| j                  |      S t        |d      r8|j                  j
                  r"t        |j                  dd      rt        d      S | j                  |      S )N)z/change-passwordz/loginz/logout/r5   is_new_employeeTzchange-password)pathrstripr-   hasattrr5   is_authenticatedrN   r   )r/   r^   excluded_pathss      r0   re   z&ForcePasswordChangeMiddleware.__call__   su    B<<s#~5$$W-- 7F#(E(Ew||%6= 122  ))r3   N)rf   rg   rh   r1   re   rM   r3   r0   rk   rk      s    )*r3   rk   N)9ri   django.appsr   django.db.modelsr   django.httpr   r   django.shortcutsr   r   asset.modelsr	   r
   attendance.modelsr   r   r   r   base.context_processorsr   base.horilla_company_managerr   base.modelsr   r   r   employee.modelsr   r   r   r   helpdesk.modelsr   horilla_documents.modelsr   leave.modelsr   r   r   r   r   offboarding.modelsr   payroll.models.modelsr    r!   r"   r#   r$   
pms.modelsr%   recruitment.modelsr&   r'   r)   rk   rM   r3   r0   <module>r      s}      < - 6  / > > >  # 4  +  ) 5H HX* *r3   