X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FExAuth.php;h=d4436e32afaad55b83759f8f53784cef027becee;hb=1c7f4e3c6331f8ad7b1987f33a17074908ad41eb;hp=f83901e98974e527041c7af0b1aa169ddcb5752b;hpb=33ccd501b9e9044fceb084bd62da7a1bcedb515b;p=friendica.git diff --git a/src/Util/ExAuth.php b/src/Util/ExAuth.php index f83901e989..d4436e32af 100644 --- a/src/Util/ExAuth.php +++ b/src/Util/ExAuth.php @@ -13,14 +13,14 @@ * Installation: * * - Change it's owner to whichever user is running the server, ie. ejabberd - * $ chown ejabberd:ejabberd /path/to/friendica/scripts/auth_ejabberd.php + * $ chown ejabberd:ejabberd /path/to/friendica/bin/auth_ejabberd.php * * - Change the access mode so it is readable only to the user ejabberd and has exec - * $ chmod 700 /path/to/friendica/scripts/auth_ejabberd.php + * $ chmod 700 /path/to/friendica/bin/auth_ejabberd.php * * - Edit your ejabberd.cfg file, comment out your auth_method and add: * {auth_method, external}. - * {extauth_program, "/path/to/friendica/script/auth_ejabberd.php"}. + * {extauth_program, "/path/to/friendica/bin/auth_ejabberd.php"}. * * - Restart your ejabberd service, you should be able to login with your friendica auth info * @@ -38,6 +38,7 @@ use Friendica\Core\Config; use Friendica\Core\PConfig; use Friendica\Database\DBM; use Friendica\Model\User; +use Friendica\Util\Network; use dba; require_once 'include/dba.php'; @@ -139,7 +140,7 @@ class ExAuth $this->setHost($aCommand[2]); // Now we check if the given user is valid - $sUser = str_replace(array('%20', '(a)'), array(' ', '@'), $aCommand[1]); + $sUser = str_replace(['%20', '(a)'], [' ', '@'], $aCommand[1]); // Does the hostname match? So we try directly if ($a->get_hostname() == $aCommand[2]) { @@ -180,7 +181,7 @@ class ExAuth $url = ($ssl ? 'https' : 'http') . '://' . $host . '/noscrape/' . $user; - $data = z_fetch_url($url); + $data = Network::curl($url); if (!is_array($data)) { return false; @@ -219,16 +220,17 @@ class ExAuth $this->setHost($aCommand[2]); // We now check if the password match - $sUser = str_replace(array('%20', '(a)'), array(' ', '@'), $aCommand[1]); + $sUser = str_replace(['%20', '(a)'], [' ', '@'], $aCommand[1]); // Does the hostname match? So we try directly if ($a->get_hostname() == $aCommand[2]) { $this->writeLog(LOG_INFO, 'internal auth for ' . $sUser . '@' . $aCommand[2]); - $aUser = dba::select('user', ['uid', 'password'], ['nickname' => $sUser], ['limit' => 1]); + $aUser = dba::selectFirst('user', ['uid', 'password', 'legacy_password'], ['nickname' => $sUser]); if (DBM::is_result($aUser)) { - $uid = User::authenticate($aUser, $aCommand[3]); - $Error = $uid === false; + $uid = $aUser['uid']; + $success = User::authenticate($aUser, $aCommand[3]); + $Error = $success === false; } else { $this->writeLog(LOG_WARNING, 'user not found: ' . $sUser); $Error = true; @@ -309,11 +311,12 @@ class ExAuth $lockpath = Config::get('jabber', 'lockpath'); if (is_null($lockpath)) { + $this->writeLog(LOG_INFO, 'No lockpath defined.'); return; } $file = $lockpath . DIRECTORY_SEPARATOR . $host; - if (Pidfile::isRunningProcess($file)) { + if (PidFile::isRunningProcess($file)) { if (PidFile::killProcess($file)) { $this->writeLog(LOG_INFO, 'Old process was successfully killed'); } else { @@ -323,7 +326,10 @@ class ExAuth } // Now it is safe to create the pid file - Pidfile::create($file); + PidFile::create($file); + if (!file_exists($file)) { + $this->writeLog(LOG_WARNING, 'Logfile ' . $file . " couldn't be created."); + } } /**