=org/compiere/model/MUserorg/compiere/model/X_AD_User&org/idempiere/cache/ImmutablePOSupportserialVersionUIDJ ConstantValue[!Wr|s_cache)Lorg/idempiere/cache/ImmutableIntPOCache; SignatureXLorg/idempiere/cache/ImmutableIntPOCache;s_logLorg/compiere/util/CLogger;m_rolesorg/compiere/model/MRole;m_rolesAD_Org_IDIm_rolesAD_Client_IDm_isAdministratorLjava/lang/Boolean; m_bpAccess#[Lorg/compiere/model/MUserBPAccess; being_hashedZ()VCode!'org/idempiere/cache/ImmutableIntPOCache#AD_User % &'(Ljava/lang/String;II)V ) +-,org/compiere/util/CLogger ./ getCLogger.(Ljava/lang/Class;)Lorg/compiere/util/CLogger; 1 LineNumberTableLocalVariableTable getOfBPartner4(Ljava/util/Properties;I)[Lorg/compiere/model/MUser; DeprecatedRuntimeVisibleAnnotationsLjava/lang/Deprecated; : 4;F(Ljava/util/Properties;ILjava/lang/String;)[Lorg/compiere/model/MUser;ctxLjava/util/Properties; C_BPartner_ID@org/compiere/model/QueryBC_BPartner_ID=? ?D &EO(Ljava/util/Properties;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)VGjava/lang/Object IKJjava/lang/Integer LMvalueOf(I)Ljava/lang/Integer; ?O PQ setParameters/([Ljava/lang/Object;)Lorg/compiere/model/Query; ?S TUsetOnlyActiveRecords(Z)Lorg/compiere/model/Query; ?W XYlist()Ljava/util/List; []\java/util/List ^_size()I [a bctoArray(([Ljava/lang/Object;)[Ljava/lang/Object;trxNameLjava/lang/String;Ljava/util/List;retValueorg/compiere/model/MUser;LocalVariableTypeTable,Ljava/util/List; getWithRole7(Lorg/compiere/model/MRole;)[Lorg/compiere/model/MUser;njava/util/ArrayList mp &rSELECT * FROM AD_User u WHERE u.IsActive='Y' AND EXISTS (SELECT * FROM AD_User_Roles ur WHERE ur.AD_User_ID=u.AD_User_ID AND ur.AD_Role_ID=? AND ur.IsActive='Y') tvuorg/compiere/util/DB wxprepareStatementL(Ljava/lang/String;Ljava/lang/String;)Lorg/compiere/util/CPreparedStatement; z|{org/compiere/model/MRole }_ getAD_Role_ID java/sql/PreparedStatement setInt(II)V   executeQuery()Ljava/sql/ResultSet; z getCtx()Ljava/util/Properties;  &?(Ljava/util/Properties;Ljava/sql/ResultSet;Ljava/lang/String;)V m add(Ljava/lang/Object;)Z java/sql/ResultSet next()Z java/util/logging/Level SEVERELjava/util/logging/Level; + logC(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V t close+(Ljava/sql/ResultSet;Ljava/sql/Statement;)V m] majava/lang/ExceptionroleLorg/compiere/model/MRole;Ljava/util/ArrayList;sqlpstmtLjava/sql/PreparedStatement;rsLjava/sql/ResultSet;eLjava/lang/Exception;1Ljava/util/ArrayList; StackMapTablejava/lang/Stringjava/lang/Throwableget(I)Lorg/compiere/model/MUser; org/compiere/util/Env  3(Ljava/util/Properties;I)Lorg/compiere/model/MUser; AD_User_ID apply:(Ljava/util/Properties;)Ljava/util/function/UnaryOperator; c(Ljava/util/Properties;Ljava/lang/Object;Ljava/util/function/UnaryOperator;)Lorg/compiere/model/PO;  &,(Ljava/util/Properties;ILjava/lang/String;)V  load((Ljava/lang/String;[Ljava/lang/String;)Z  _get_ID $()Ljava/util/function/UnaryOperator; putd(Ljava/lang/Object;Lorg/compiere/model/PO;Ljava/util/function/UnaryOperator;)Lorg/compiere/model/PO;keyLjava/lang/Integer;Lorg/compiere/model/MUser;2(Ljava/util/Properties;)Lorg/compiere/model/MUser;  getAD_User_ID(Ljava/util/Properties;)IgetCopyE(Ljava/util/Properties;ILjava/lang/String;)Lorg/compiere/model/MUser;   &E(Ljava/util/Properties;Lorg/compiere/model/MUser;Ljava/lang/String;)VuserV(Ljava/util/Properties;Ljava/lang/String;Ljava/lang/String;)Lorg/compiere/model/MUser;  W(Ljava/util/Properties;Ljava/lang/String;Ljava/lang/String;Z)Lorg/compiere/model/MUser;namepassword _length makeConcatWithConstants&(Ljava/lang/String;)Ljava/lang/String; + warning(Ljava/lang/String;)VUSER_PASSWORD_HASH org/compiere/model/MSysConfig getBooleanValue(Ljava/lang/String;Z)ZUSE_EMAIL_FOR_LOGINjava/lang/StringBuilder Password IS NOT NULL AND  &EMail=?  append-(Ljava/lang/String;)Ljava/lang/StringBuilder;COALESCE(LDAPUser,Name)=? AND' EXISTS (SELECT * FROM AD_User_Roles ur= INNER JOIN AD_Role r ON (ur.AD_Role_ID=r.AD_Role_ID)\ WHERE ur.AD_User_ID=AD_User.AD_User_ID AND ur.IsActive='Y' AND r.IsActive='Y') AND " EXISTS (SELECT * FROM AD_Client c 2 WHERE c.AD_Client_ID=AD_User.AD_Client_ID"! AND c.IsActive='Y') AND $ AD_User.IsActive='Y' & '(toString()Ljava/lang/String;*AD_Client_ID, AD_User_ID ?, -. setOrderBy.(Ljava/lang/String;)Lorg/compiere/model/Query;0 UserPwdError +2 34 saveError((Ljava/lang/String;Ljava/lang/String;Z)Z [6 78iterator()Ljava/util/Iterator; :<;java/util/Iterator =()Ljava/lang/Object; ? @_getAD_Client_ID mB Ccontains +F Gsevere IKJorg/compiere/model/MSystem L4(Ljava/util/Properties;)Lorg/compiere/model/MSystem;Njava/lang/IllegalStateExceptionPNo System Info M IS TisLDAP V W( getLDAPUser Y[Zorg/compiere/util/Util \]isEmpty(Ljava/lang/String;)Z I_ T`'(Ljava/lang/String;Ljava/lang/String;)Z b c]authenticateHash e f( getPassword h iequals :k lhasNext isSSOLogin hash_password email_loginclientsValidatedwhereLjava/lang/StringBuilder;usersvalidsystemLorg/compiere/model/MSystem;*Ljava/util/ArrayList;yjava/util/Properties getNameOfUser(I)Ljava/lang/String; } _?  (getName isSalesRep(I)ZSELECT MAX(AD_User_ID) FROM AD_User u INNER JOIN C_BPartner bp ON (u.C_BPartner_ID=bp.C_BPartner_ID) WHERE bp.IsSalesRep='Y' AND AD_User_ID=? t  getSQLValue((Ljava/lang/String;Ljava/lang/String;I)InogetWithRoleKeyNamePairs5(ZLjava/lang/String;)[Lorg/compiere/util/KeyNamePair;SELECT AD_User_ID, Name FROM AD_User u WHERE EXISTS (SELECT * FROM AD_User_Roles ur WHERE u.AD_User_ID=ur.AD_User_ID) ORDER BY 2 z  getDefault()Lorg/compiere/model/MRole;u z  addAccessSQL:(Ljava/lang/String;Ljava/lang/String;ZZ)Ljava/lang/String; t getKeyNamePairsExZ(Ljava/lang/String;Ljava/lang/String;Z[Ljava/lang/Object;)[Lorg/compiere/util/KeyNamePair;withEmptyElement=(Ljava/util/Properties;Ljava/lang/String;Ljava/lang/String;)V  &              setInitialDefaultsthis AD_User_UU   setIsFullBPAccess(Z)VX  setNotificationType$(Lorg/compiere/model/X_C_BPartner;)V org/compiere/model/X_C_BPartner  ( get_TrxName   setClientOrg(Lorg/compiere/model/PO;)V  _getC_BPartner_ID  setC_BPartner_ID(I)V   setNamepartner!Lorg/compiere/model/X_C_BPartner; (Lorg/compiere/model/MUser;)V  &3(Ljava/util/Properties;Lorg/compiere/model/MUser;)Vcopy  copyPO java/util/Arrays stream.([Ljava/lang/Object;)Ljava/util/stream/Stream; G(Ljava/util/Properties;Ljava/lang/String;)Ljava/util/function/Function; java/util/stream/Stream map8(Ljava/util/function/Function;)Ljava/util/stream/Stream; "()Ljava/util/function/IntFunction;  b5(Ljava/util/function/IntFunction;)[Ljava/lang/Object;  copyOf)([Ljava/lang/Object;I)[Ljava/lang/Object;getValue  (  setValues  (trimnoname   cleanValue   '(Ljava/lang/String;Z)Ljava/lang/String;    substring(II)Ljava/lang/String; 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; Valueresultfirstlasttemp   toCharArray()[C p  java/lang/Character !" toLowerCase(C)C $ %(C)Ljava/lang/StringBuilder;valuechars[CsbichC( setPassword 0 .2SHA1PRNG 465java/security/SecureRandom 78 getInstance0(Ljava/lang/String;)Ljava/security/SecureRandom; 4: ;< nextBytes([B)V >@?org/compiere/util/SecureEngine AB getSHA512Hash)(ILjava/lang/String;[B)Ljava/lang/String; DFEorg/compiere/util/Secure GHconvertToHexString([B)Ljava/lang/String; J KsetSaltM&java/security/NoSuchAlgorithmExceptionO$java/io/UnsupportedEncodingExceptionrandomLjava/security/SecureRandom;bSalt[BhashsSalt W X(getSalt >Z [\ isMatchHash9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z getFirstName getLastName` b cdindexOf(I)Ifjava/util/StringTokenizerh, ej &k'(Ljava/lang/String;Ljava/lang/String;)Vm eo p( nextToken er s hasMoreTokensgetFirst lastFirststLjava/util/StringTokenizer;addDescription z {(getDescription } ~setDescription descriptiondescrMUser[  (I)Ljava/lang/StringBuilder;,Name= ,EMailUserID=  ( getEMailUser]isOnline  (getEMailsetEMail    setEMailVerifyDate(Ljava/sql/Timestamp;)VEMailgetInternetAddress'()Ljavax/mail/internet/InternetAddress;#javax/mail/internet/InternetAddress  &(Ljava/lang/String;Z)V   $javax/mail/internet/AddressException (getLocalizedMessageemailia%Ljavax/mail/internet/InternetAddress;ex&Ljavax/mail/internet/AddressException; isEMailValid org/compiere/util/EMail ]validateisCanSendEMail  org/compiere/model/MClient 4(Ljava/util/Properties;)Lorg/compiere/model/MClient;  isSmtpAuthorization  (getEMailUserPWgetEMailVerifyCode  _hashCode java/lang/Math abs(J)J  L(J)Ljava/lang/String; codesetEMailVerifyCode  (java/sql/Timestamp java/lang/System currentTimeMillis()J  &(J)V  setEMailVerifyinfookisEMailVerified  getEMailVerifyDate()Ljava/sql/Timestamp;  (getEMailVerifyisNotificationEMail  (getNotificationTypeEBisNotificationNoteNgetRoles(I)[Lorg/compiere/model/MRole;  @$SELECT * FROM AD_Role r WHERE r.IsActive='Y' AND r.AD_Client_ID IN (0, ?) AND EXISTS (SELECT * FROM AD_User_Roles ur WHERE r.AD_Role_ID=ur.AD_Role_ID AND ur.IsActive='Y' AND ur.AD_User_ID=?) AND ( ( r.isaccessallorgs = 'Y' ) OR ( r.IsUseUserOrgAccess <> 'Y' AND EXISTS (SELECT * FROM AD_Role_OrgAccess ro WHERE r.AD_Role_ID=ro.AD_Role_ID AND ro.IsActive='Y' AND ro.AD_Org_ID=?) ) OR ( r.IsUseUserOrgAccess = 'Y' AND EXISTS (SELECT * FROM AD_User_OrgAccess uo WHERE uo.AD_User_ID=? AND uo.IsActive='Y' AND uo.AD_Org_ID=?) ) ) ORDER BY AD_Role_ID  z   is_Immutable m ()Ljava/util/stream/Stream;   accept()Ljava/util/function/Consumer;    forEach (Ljava/util/function/Consumer;)V AD_Org_ID1Ljava/util/ArrayList;isAdministrator java/lang/Boolean FALSE    TRUE   booleanValueroleshasURLFormAccess Y! \#AD_Form% ClassName=? ?' (_firstId z* +, getFormAccess(I)Ljava/lang/Boolean;url hasAccessformId formAccess hasBPAccess((Ljava/lang/String;[Ljava/lang/Object;)Z 4 5isFullBPAccess 7 89 getBPAccess&(Z)[Lorg/compiere/model/MUserBPAccess; ;=< org/compiere/model/MUserBPAccess >(getBPAccessType BPAccessTypeparams[Ljava/lang/Object;CASELECT * FROM AD_UserBPAccess WHERE AD_User_ID=? AND IsActive='Y' ; requery9Ljava/util/ArrayList; beforeSave(Z)Z L M]is_ValueChanged O Q SaveErrorSInvalidEMailFormat UWVorg/compiere/util/Msg XYgetMsg<(Ljava/util/Properties;Ljava/lang/String;)Ljava/lang/String; U[ \Y getElement ^ _J(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +a 3`d FillMandatory & ^hhSELECT COUNT(*) FROM AD_User WHERE Password IS NOT NULL AND EMail=? AND AD_Client_ID=? AND AD_User_ID!=? tj k:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)ImSaveErrorNotUnique Uo Xp=(Ljava/util/Properties;Ljava/lang/String;Z)Ljava/lang/String;szSELECT COUNT(*) FROM AD_User WHERE Password IS NOT NULL AND COALESCE(LDAPUser,Name)=? AND AD_Client_ID=? AND AD_User_ID!=?uNamewLDAPUser^zPassword|Salt ~  get_ValueOld&(Ljava/lang/String;)Ljava/lang/Object;   get_Value  org/compiere/model/MPasswordRule getRulesL(Ljava/util/Properties;Ljava/lang/String;)Lorg/compiere/model/MPasswordRule;  _getDays_Reuse_Password #org/compiere/model/MPasswordHistory getPasswordHistoryForCheck(II)Ljava/util/List;  7(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Vjava/util/Date p  getTime  setDatePasswordChanged 0 newRecordcntnameToValidate hasPasswordpwdrule"Lorg/compiere/model/MPasswordRule;passwordHistorys7Ljava/util/List;isMenuAutoExpand  (getIsMenuAutoExpandY z D(Ljava/util/Properties;Ljava/lang/String;)Lorg/compiere/model/MUser;SELECT DISTINCT u.AD_User_ID FROM AD_User uP INNER JOIN AD_User_Roles ur ON (u.AD_User_ID=ur.AD_User_ID AND ur.IsActive='Y')I INNER JOIN AD_Role r ON (ur.AD_Role_ID=r.AD_Role_ID AND r.IsActive='Y') 7WHERE u.Password IS NOT NULL AND ur.AD_Client_ID=? AND  u.EMail=?COALESCE(u.LDAPUser,u.Name)=? AND u.IsActive='Y'^ AND EXISTS (SELECT * FROM AD_Client c WHERE u.AD_Client_ID=c.AD_Client_ID AND c.IsActive='Y')   setString(ILjava/lang/String;)V  dgetInt   No record + fine AD_Client_ID  isSendCredentialsSystem  5(Ljava/util/Properties;I)Lorg/compiere/model/MClient;  (getRequestUser  isSendCredentialsClient  sysclientLorg/compiere/model/MClient;client  (getRequestUserPW  afterSave(ZZ)ZSaving password history: it is strongly encouraged to save password history just when using hashed passwords - WARNING! table AD_Password_History is possibly keeping plain passwords  J 0   setAD_User_ID   getUpdated   saveEx  successpasswordHistory%Lorg/compiere/model/MPasswordHistory; postDelete  _getAD_Image_IDorg/compiere/model/MImage   Idelete {imgLorg/compiere/model/MImage; markImmutable()Lorg/compiere/model/MUser;   makeImmutable()Lorg/compiere/model/PO;    lambda$0L(Ljava/util/Properties;Lorg/compiere/model/MUser;)Lorg/compiere/model/MUser;lambda$16(Lorg/compiere/model/MUser;)Lorg/compiere/model/MUser;lambda$2^(Ljava/util/Properties;Ljava/lang/String;Lorg/compiere/model/MRole;)Lorg/compiere/model/MRole; z &E(Ljava/util/Properties;Lorg/compiere/model/MRole;Ljava/lang/String;)Vlambda$3lambda$4(Lorg/compiere/model/MRole;)V z#  lambda$5%(Lorg/compiere/model/MUserBPAccess;)V ;'  ($()Lorg/compiere/model/MUserBPAccess;"Lorg/compiere/model/MUserBPAccess;lambda$6lambda$7 SourceFile MUser.javaBootstrapMethods 021"java/lang/invoke/LambdaMetafactory 34 metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;/&(Ljava/lang/Object;)Ljava/lang/Object;6 9 86 > = BDC$java/lang/invoke/StringConcatFactory E(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;AHInvalid Name/Password = JNTwo users with password with the same name/email combination on same tenant: 6 M L6(Lorg/compiere/model/MRole;)Lorg/compiere/model/MRole;O(I)Ljava/lang/Object;Q T SXZ - \CC(Ljava/lang/Object;)V] `  !_!] e $%d%i - []k - m / oInvalid Name = q)More then one user with Name/Password = s>Associated image could not be deleted for user - AD_Image_ID=] v *!u!] { +%z% InnerClasses%java/lang/invoke/MethodHandles$Lookupjava/lang/invoke/MethodHandlesLookup!    ?= Y"<$(*02 PR3 45678;*92L3<=> 4;:?Y*"A,CFYHSNRVN-Z:-`W2"XYZ["X#].^7_34:<=:>:de#Xf. ghi #Xj klmYoLqMN:,sN-*y~-:+Y*W%:0,-:--+:+WILZc2Vij n ors!t)u,v?uIwLxNzZ~c}e~kn~t}3HX |e zwN } ghi X#,zmLV  223  THM(*,*N-:Y*N:-W-(,-W--22 &*-8@NPR34T<=TO=g- de 8I 3 **23  <= xN-Y*-,N-2 3*<=de F*+,23 <=ee ++, ,0+66mYo::Y  : W W!#W?Y*"%CFY+SN)+V:  Z0/+1W 5:  9:  >HA0+DE >HW6 H:  MYOQ 6 = R UX +,^6  ,a6  d,g6   :  jV21&(09BEQVbksy #+ 0 ; ? BXaiqt3 <=eem0hn9_oBVpESgQGqrsf #ht +`uv iBVpwsj  9 xmp[ xm[:) xm[:(I  xm[: xm[ z{gL+|~+2'()*3 xL+=2456 9:3  e   rMN-,M+,F2FJKL3*dee&1*+,-******,X*2* [  %\,]0^3*11<=1e1de0x&.*+-*******2* h  %i)j-k3*..<=..de-x? **2qr s3  &g#*++*+*+ȶ*+϶б2{ |}~"3##&&*+,-******2"  %3*&&<=&&de&A *+ױ2 3  &J*+,2 3 <=&j*+-*,*,&,+-*,*,*,,,2 ;CKi3*jj<=jjdeN7xxlx(g*L++**2  3e s+ +*UL+ +*L+ +L*+M,D*+N*+:':-- :*M *-M, , M*,2V#.28AHPX\cry|3>e8aeH:eP2e\e(   ? R+MYN66,4660 9az -#W,-%2*   .<CM3>RR&eM'( E)r=**+,- .Ml+ *+/= *+/**13N:-9+=:C:*/*IW*+/ W*+/(Y\L(YeN2Z   "#(/5 ;#F%M&S'Y(])e*f+k-3Hlle[n/-PQ5$RSFTeM Ue xLHNc]A *d*V+Y233  e](4 **2<3  ^(4 **2E3   + +_N:+,a6:eY+gi:FeY+li:6n: :-N- N:q-_-_2rP QRSW%X(Y-Z=\J]M_W`\bachdleofrivj|l]oqrsuvw3Retee%u(vwW)e% @e x0+ +*yM, , *+|*,+|2  $/3 00ee   '(7Y *Ҷ**L+%2 +12372)rN* *d23 G *+*2 3  e2*L+ +Y+M,M*+,2"03*2-e K2*23 5*L+ +**L+ +2!&350e (S*|*`@Ǹͺ2 3 `6++*Ӷg>*Y׷ݶ**,2"*/43*66e6e! @[***23 o!*L++g+g2    3!ep!*L++g +g23!e ]%****mYoMN::-*s:~*|~~*|~~:,zY*W4:*-::":::::,*, ***,z,*W*332" !!#)(-90:3==>K?W@`AlBuC~DEDFGIMNLMNOMNQRTU VW X3H%%)X-e03 i )X&!_mL^ =*1**L=+2y * +*2& acdeg"i)j,e5n3 =!*]= v+ =?Y*"$*CRFY+SN&>?*Y:66'2:):= 2Bxy { |!}+~03|48PXegjt3>vv-e j.4B/PX0) > 124*3*6W>*2:+g*2" $&23*44?e4@A!*  89* *BMmYoN::,s:*|~:-;Y*DW(:*,:-*-E *-;-*W*"^a"pz2f ")5>AT^acpz|3HFeX"c i XG&0mLX HI K*JK**XB *JK4*N-*P*RT*JZ*]`W* *bK ***d*d=* *-*P*cT*JZ*ef`W*gFY*SY*>HSY*|HSi>*P*ln*JZq`W*UN-X*N*rFY-SY*>HSY*|HSi64*P*ln*tZ*vZx`W*dX=s *yKe*{} *{Q**N-,-*|:-*U *U**d*YYݶ>(*yK*V **d2.+2Z\qy$&+27;DZ_d  $ . = AI3f KKo++je_6Bf +ni X0-)T] @+[[# q <**g< <2 3  ~ %+ +0+M*>Y :W6W W¶W::%s:~+:**MR0+C0ζЧ7:0%::": :: ::,2() +,./ 1*20364<1>5G6P7U8a:j;y=|>ABCDEGHIJLMNPTUST UVTU#W3\ %<=%e g >rPo|- GxkKa (,ԙ*L+ڰݙ*L+ڰ*2]^_`a"b'd3 ,"(,ԙ*L+䰸ݙ*L+*2klmno"p'r3 ,".*d*dz *yKl**N-\-U6 *EY**:*V*d*|**26 xz+{6|>}C~M_hqz3>+]>Jn_) -:7*1Y***L+**2#3537  5  O******޺ ***޺ *2"  -<M3 O #A %*23 4 Y*+װ23   6 Y*װ23   5 zY*,+23   %z23  !/*"2R3  $%/*&23 ) *!/*"23  +%/*&23 ),-.57:;5<?@FGFI5KNP5RUVFWFYFYF[5^ab5cfgFhFjFWFlFnFpFr5twx5y|}~