@@ -98,30 +98,43 @@ public function authenticate(): Redirector|RedirectResponse|LoginResponse|null
9898 $ credentialKey = array_key_first ($ credentials );
9999 $ guardProvider = config ("auth.guards. $ guard ->name .provider " );
100100 $ userModel = config ("auth.providers. $ guardProvider.model " );
101- $ userModelUsername = config ("press .auth.$ guard ->name .username " );
102- $ userModelEmail = config ("press .auth.$ guard ->name .email " );
101+ $ userModelUsername = config ("security .auth.$ guard ->name .username " );
102+ $ userModelEmail = config ("security .auth.$ guard ->name .email " );
103103 $ query = $ userModel ::query ();
104- if (! empty ($ userModelUsername ) && $ credentialKey === 'name ' ) {
105- $ query ->orWhere ($ userModelUsername , $ credentials [$ credentialKey ]);
104+
105+ if (!empty ($ userModelUsername ) && $ credentialKey === 'name ' ) {
106+ $ query ->where ($ userModelUsername , $ credentials [$ credentialKey ]);
106107 }
107- if (! empty ($ userModelEmail && $ credentialKey === 'email ' )) {
108- $ query ->orWhere ($ userModelEmail , $ credentials [$ credentialKey ]);
108+
109+ if (!empty ($ userModelEmail ) && $ credentialKey === 'email ' ) {
110+
111+ if ($ query ->getQuery ()->wheres ) { // Check if there's already a condition
112+ $ query ->orWhere ($ userModelEmail , $ credentials [$ credentialKey ]);
113+ } else {
114+ $ query ->where ($ userModelEmail , $ credentials [$ credentialKey ]);
115+ }
109116 }
117+
110118 $ user = $ query ->first ();
119+
111120 if (config ('security.wpModel ' ) && $ user instanceof (config ('security.wpModel ' ))) {
112121 $ wpAuthService = new \Moox \Security \Services \WordPressAuthService ;
113122
114123 if (! $ user || ! $ wpAuthService ->checkPassword ($ credentials ['password ' ], $ user ->user_pass )) {
115124 $ this ->throwFailureValidationException ();
116125 }
126+
117127 } else {
128+
118129 if (! Auth::guard ($ guard ->name )->attempt ($ credentials , $ data ['remember ' ] ?? false )) {
119130 $ this ->throwFailureValidationException ();
120131 }
121132 }
122133
123134 Auth::guard ($ guard ->name )->login ($ user , $ data ['remember ' ] ?? false );
135+
124136 session ()->regenerate ();
137+
125138 if (config ('security.wpModel ' ) && $ user instanceof (config ('security.wpModel ' ))
126139 && config ('press.auth_wordpress ' ) === true ) {
127140 $ payload = base64_encode ($ user ->ID );
0 commit comments