]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Login.php
Merge pull request #5862 from nupplaphil/rename_App_Methods
[friendica.git] / src / Module / Login.php
index 7d6470620acfda4f5b419b8b5b17452a23f8894b..15505a38be61295c8118d9b449a4da51b2daed7b 100644 (file)
@@ -4,16 +4,15 @@
  */
 namespace Friendica\Module;
 
+use Exception;
 use Friendica\BaseModule;
 use Friendica\Core\Addon;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
-use Friendica\Database\DBM;
+use Friendica\Database\DBA;
 use Friendica\Model\User;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Network;
-use dba;
-use Exception;
 use LightOpenID;
 
 require_once 'boot.php';
@@ -23,7 +22,7 @@ require_once 'include/text.php';
 /**
  * Login module
  *
- * @author Hypolite Petovan mrpetovan@gmail.com
+ * @author Hypolite Petovan <hypolite@mrpetovan.com>
  */
 class Login extends BaseModule
 {
@@ -40,15 +39,18 @@ class Login extends BaseModule
                }
 
                if (local_user()) {
-                       goaway(self::getApp()->get_baseurl());
+                       goaway(self::getApp()->getBaseURL());
                }
 
-               return self::form(self::getApp()->get_baseurl(), $a->config['register_policy'] != REGISTER_CLOSED);
+               return self::form($_SESSION['return_url'], intval(Config::get('config', 'register_policy')) !== REGISTER_CLOSED);
        }
 
        public static function post()
        {
+               $return_url = $_SESSION['return_url'];
                session_unset();
+               $_SESSION['return_url'] = $return_url;
+               
                // OpenId Login
                if (
                        empty($_POST['password'])
@@ -84,18 +86,18 @@ class Login extends BaseModule
                // if it's an email address or doesn't resolve to a URL, fail.
                if ($noid || strpos($openid_url, '@') || !Network::isUrlValid($openid_url)) {
                        notice(L10n::t('Login failed.') . EOL);
-                       goaway(self::getApp()->get_baseurl());
+                       goaway(self::getApp()->getBaseURL());
                        // NOTREACHED
                }
 
                // Otherwise it's probably an openid.
                try {
                        $a = get_app();
-                       $openid = new LightOpenID($a->get_hostname());
+                       $openid = new LightOpenID($a->getHostName());
                        $openid->identity = $openid_url;
                        $_SESSION['openid'] = $openid_url;
                        $_SESSION['remember'] = $remember;
-                       $openid->returnUrl = self::getApp()->get_baseurl(true) . '/openid';
+                       $openid->returnUrl = self::getApp()->getBaseURL(true) . '/openid';
                        goaway($openid->authUrl());
                } catch (Exception $e) {
                        notice(L10n::t('We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID.') . '<br /><br >' . L10n::t('The error message was:') . ' ' . $e->getMessage());
@@ -135,14 +137,14 @@ class Login extends BaseModule
                                        throw new Exception(L10n::t('Login failed.'));
                                }
                        } else {
-                               $record = dba::selectFirst('user', [],
+                               $record = DBA::selectFirst('user', [],
                                        ['uid' => User::getIdFromPasswordAuthentication($username, $password)]
                                );
                        }
                } catch (Exception $e) {
                        logger('authenticate: failed login attempt: ' . notags($username) . ' from IP ' . $_SERVER['REMOTE_ADDR']);
-                       notice($e->getMessage() . EOL);
-                       goaway(self::getApp()->get_baseurl() . '/login');
+                       info('Login failed. Please check your credentials.' . EOL);
+                       goaway('/');
                }
 
                if (!$remember) {
@@ -176,7 +178,7 @@ class Login extends BaseModule
                        $data = json_decode($_COOKIE["Friendica"]);
                        if (isset($data->uid)) {
 
-                               $user = dba::selectFirst('user', [],
+                               $user = DBA::selectFirst('user', [],
                                        [
                                                'uid'             => $data->uid,
                                                'blocked'         => false,
@@ -185,11 +187,11 @@ class Login extends BaseModule
                                                'verified'        => true,
                                        ]
                                );
-                               if (DBM::is_result($user)) {
+                               if (DBA::isResult($user)) {
                                        if ($data->hash != cookie_hash($user)) {
                                                logger("Hash for user " . $data->uid . " doesn't fit.");
                                                nuke_session();
-                                               goaway(self::getApp()->get_baseurl());
+                                               goaway(self::getApp()->getBaseURL());
                                        }
 
                                        // Renew the cookie
@@ -212,11 +214,9 @@ class Login extends BaseModule
 
                if (isset($_SESSION) && x($_SESSION, 'authenticated')) {
                        if (x($_SESSION, 'visitor_id') && !x($_SESSION, 'uid')) {
-                               $r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
-                                       intval($_SESSION['visitor_id'])
-                               );
-                               if (DBM::is_result($r)) {
-                                       self::getApp()->contact = $r[0];
+                               $contact = DBA::selectFirst('contact', [], ['id' => $_SESSION['visitor_id']]);
+                               if (DBA::isResult($contact)) {
+                                       self::getApp()->contact = $contact;
                                }
                        }
 
@@ -228,10 +228,10 @@ class Login extends BaseModule
                                        logger('Session address changed. Paranoid setting in effect, blocking session. ' .
                                                $_SESSION['addr'] . ' != ' . $_SERVER['REMOTE_ADDR']);
                                        nuke_session();
-                                       goaway(self::getApp()->get_baseurl());
+                                       goaway(self::getApp()->getBaseURL());
                                }
 
-                               $user = dba::selectFirst('user', [],
+                               $user = DBA::selectFirst('user', [],
                                        [
                                                'uid'             => $_SESSION['uid'],
                                                'blocked'         => false,
@@ -240,15 +240,15 @@ class Login extends BaseModule
                                                'verified'        => true,
                                        ]
                                );
-                               if (!DBM::is_result($user)) {
+                               if (!DBA::isResult($user)) {
                                        nuke_session();
-                                       goaway(self::getApp()->get_baseurl());
+                                       goaway(self::getApp()->getBaseURL());
                                }
 
                                // Make sure to refresh the last login time for the user if the user
                                // stays logged in for a long time, e.g. with "Remember Me"
                                $login_refresh = false;
-                               if (!x($_SESSION['last_login_date'])) {
+                               if (empty($_SESSION['last_login_date'])) {
                                        $_SESSION['last_login_date'] = DateTimeFormat::utcNow();
                                }
                                if (strcmp(DateTimeFormat::utc('now - 12 hours'), $_SESSION['last_login_date']) > 0) {
@@ -266,7 +266,7 @@ class Login extends BaseModule
         * @param string $return_url The url relative to the base the user should be sent
         *                                                       back to after login completes
         * @param bool $register If $register == true provide a registration link.
-        *                                               This will most always depend on the value of $a->config['register_policy'].
+        *                                               This will most always depend on the value of config.register_policy.
         * @param array $hiddens  optional
         *
         * @return string Returns the complete html for inserting into the page
@@ -297,7 +297,7 @@ class Login extends BaseModule
                        $a->page['htmlhead'] .= replace_macros(
                                get_markup_template('login_head.tpl'),
                                [
-                                       '$baseurl' => $a->get_baseurl(true)
+                                       '$baseurl' => $a->getBaseURL(true)
                                ]
                        );
 
@@ -308,7 +308,7 @@ class Login extends BaseModule
                $o .= replace_macros(
                        $tpl,
                        [
-                               '$dest_url'     => self::getApp()->get_baseurl(true) . '/login',
+                               '$dest_url'     => self::getApp()->getBaseURL(true) . '/login',
                                '$logout'       => L10n::t('Logout'),
                                '$login'        => L10n::t('Login'),