@@ -128,19 +128,22 @@ public function login($username, $password, $client_login = false)
128128 $ app ->db ->query ($ sql , $ remote_session ,$ remote_userid ,$ remote_functions ,$ tstamp );
129129 return $ remote_session ;
130130 } else {
131- $ sql = "SELECT * FROM remote_user WHERE remote_username = ? and remote_password = ? " ;
132- $ remote_user = $ app ->db ->queryOneRecord ($ sql , $ username , $ app ->auth ->crypt_password ($ password ));
133- if (!$ remote_user ) {
134- // fallback to md5
135- $ sql = "SELECT * FROM remote_user WHERE remote_username = ? and remote_password = ? " ;
136- $ remote_user = $ app ->db ->queryOneRecord ($ sql , $ username , md5 ($ password ));
137- if ($ remote_user ) {
131+ $ sql = "SELECT * FROM remote_user WHERE remote_username = ? " ;
132+ $ remote_user = $ app ->db ->queryOneRecord ($ sql , $ username );
133+ if ($ remote_user ) {
134+ if (substr ($ remote_user ['remote_password ' ], 0 , 1 ) === '$ ' ) {
135+ if (crypt (stripslashes ($ password ), $ remote_user ['remote_password ' ]) != $ remote_user ['remote_password ' ]) {
136+ $ remote_user = null ;
137+ }
138+ } elseif (md5 ($ password ) == $ remote_user ['remote_password ' ]) {
138139 // update hash algo
139140 $ sql = 'UPDATE `remote_user` SET `remote_password` = ? WHERE `remote_username` = ? ' ;
140141 $ app ->db ->query ($ sql , $ app ->auth ->crypt_password ($ password ), $ username );
142+ } else {
143+ $ remote_user = null ;
141144 }
142145 }
143- if ($ remote_user ['remote_userid ' ] > 0 ) {
146+ if ($ remote_user && $ remote_user ['remote_userid ' ] > 0 ) {
144147 if (trim ($ remote_user ['remote_ips ' ]) != '' ) {
145148 $ allowed_ips = explode (', ' ,$ remote_user ['remote_ips ' ]);
146149 foreach ($ allowed_ips as $ i => $ allowed ) {
0 commit comments