mirror of
https://github.com/friendica/friendica
synced 2024-12-23 08:40:16 +00:00
Merge pull request #7710 from MrPetovan/task/rework-theme-session-vars
Rework theme session variables
This commit is contained in:
commit
5f80180b47
15 changed files with 119 additions and 140 deletions
|
@ -162,6 +162,7 @@ function api_register_func($path, $func, $auth = false, $method = API_METHOD_ANY
|
||||||
* @brief Login API user
|
* @brief Login API user
|
||||||
*
|
*
|
||||||
* @param App $a App
|
* @param App $a App
|
||||||
|
* @throws ForbiddenException
|
||||||
* @throws InternalServerErrorException
|
* @throws InternalServerErrorException
|
||||||
* @throws UnauthorizedException
|
* @throws UnauthorizedException
|
||||||
* @hook 'authenticate'
|
* @hook 'authenticate'
|
||||||
|
@ -170,8 +171,6 @@ function api_register_func($path, $func, $auth = false, $method = API_METHOD_ANY
|
||||||
* 'password' => password from login form
|
* 'password' => password from login form
|
||||||
* 'authenticated' => return status,
|
* 'authenticated' => return status,
|
||||||
* 'user_record' => return authenticated user record
|
* 'user_record' => return authenticated user record
|
||||||
* @hook 'logged_in'
|
|
||||||
* array $user logged user record
|
|
||||||
*/
|
*/
|
||||||
function api_login(App $a)
|
function api_login(App $a)
|
||||||
{
|
{
|
||||||
|
@ -182,7 +181,7 @@ function api_login(App $a)
|
||||||
list($consumer, $token) = $oauth1->verify_request($request);
|
list($consumer, $token) = $oauth1->verify_request($request);
|
||||||
if (!is_null($token)) {
|
if (!is_null($token)) {
|
||||||
$oauth1->loginUser($token->uid);
|
$oauth1->loginUser($token->uid);
|
||||||
Hook::callAll('logged_in', $a->user);
|
Session::set('allow_api', true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
echo __FILE__.__LINE__.__FUNCTION__ . "<pre>";
|
echo __FILE__.__LINE__.__FUNCTION__ . "<pre>";
|
||||||
|
|
|
@ -17,14 +17,6 @@ use Friendica\Database\DBA;
|
||||||
use Friendica\Model\Item;
|
use Friendica\Model\Item;
|
||||||
use Friendica\Model\User;
|
use Friendica\Model\User;
|
||||||
|
|
||||||
function community_init(App $a)
|
|
||||||
{
|
|
||||||
if (!local_user()) {
|
|
||||||
unset($_SESSION['theme']);
|
|
||||||
unset($_SESSION['mobile-theme']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function community_content(App $a, $update = 0)
|
function community_content(App $a, $update = 0)
|
||||||
{
|
{
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
|
@ -70,24 +70,8 @@ function manage_post(App $a) {
|
||||||
if (!DBA::isResult($user)) {
|
if (!DBA::isResult($user)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
unset($_SESSION['authenticated']);
|
|
||||||
unset($_SESSION['uid']);
|
Session::clear();
|
||||||
unset($_SESSION['visitor_id']);
|
|
||||||
unset($_SESSION['administrator']);
|
|
||||||
unset($_SESSION['cid']);
|
|
||||||
unset($_SESSION['theme']);
|
|
||||||
unset($_SESSION['mobile-theme']);
|
|
||||||
unset($_SESSION['page_flags']);
|
|
||||||
unset($_SESSION['return_path']);
|
|
||||||
if (!empty($_SESSION['submanage'])) {
|
|
||||||
unset($_SESSION['submanage']);
|
|
||||||
}
|
|
||||||
if (!empty($_SESSION['sysmsg'])) {
|
|
||||||
unset($_SESSION['sysmsg']);
|
|
||||||
}
|
|
||||||
if (!empty($_SESSION['sysmsg_info'])) {
|
|
||||||
unset($_SESSION['sysmsg_info']);
|
|
||||||
}
|
|
||||||
|
|
||||||
Session::setAuthenticatedForUser($a, $user, true, true);
|
Session::setAuthenticatedForUser($a, $user, true, true);
|
||||||
|
|
||||||
|
|
|
@ -76,10 +76,6 @@ function search_init(App $a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$a->page['aside'] .= search_saved_searches();
|
$a->page['aside'] .= search_saved_searches();
|
||||||
|
|
||||||
} else {
|
|
||||||
unset($_SESSION['theme']);
|
|
||||||
unset($_SESSION['mobile-theme']);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,14 +41,6 @@ function uimport_content(App $a)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!empty($_SESSION['theme'])) {
|
|
||||||
unset($_SESSION['theme']);
|
|
||||||
}
|
|
||||||
if (!empty($_SESSION['mobile-theme'])) {
|
|
||||||
unset($_SESSION['mobile-theme']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$tpl = Renderer::getMarkupTemplate("uimport.tpl");
|
$tpl = Renderer::getMarkupTemplate("uimport.tpl");
|
||||||
return Renderer::replaceMacros($tpl, [
|
return Renderer::replaceMacros($tpl, [
|
||||||
'$regbutt' => L10n::t('Import'),
|
'$regbutt' => L10n::t('Import'),
|
||||||
|
|
113
src/App.php
113
src/App.php
|
@ -92,10 +92,10 @@ class App
|
||||||
*/
|
*/
|
||||||
private $baseURL;
|
private $baseURL;
|
||||||
|
|
||||||
/**
|
/** @var string The name of the current theme */
|
||||||
* @var string The name of the current theme
|
|
||||||
*/
|
|
||||||
private $currentTheme;
|
private $currentTheme;
|
||||||
|
/** @var string The name of the current mobile theme */
|
||||||
|
private $currentMobileTheme;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Configuration The config
|
* @var Configuration The config
|
||||||
|
@ -450,10 +450,10 @@ class App
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the current theme name.
|
* Returns the current theme name. May be overriden by the mobile theme name.
|
||||||
*
|
*
|
||||||
* @return string the name of the current theme
|
* @return string
|
||||||
* @throws HTTPException\InternalServerErrorException
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function getCurrentTheme()
|
public function getCurrentTheme()
|
||||||
{
|
{
|
||||||
|
@ -461,6 +461,16 @@ class App
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Specific mobile theme override
|
||||||
|
if (($this->mode->isMobile() || $this->mode->isTablet()) && Core\Session::get('show-mobile', true)) {
|
||||||
|
$user_mobile_theme = $this->getCurrentMobileTheme();
|
||||||
|
|
||||||
|
// --- means same mobile theme as desktop
|
||||||
|
if (!empty($user_mobile_theme) && $user_mobile_theme !== '---') {
|
||||||
|
return $user_mobile_theme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!$this->currentTheme) {
|
if (!$this->currentTheme) {
|
||||||
$this->computeCurrentTheme();
|
$this->computeCurrentTheme();
|
||||||
}
|
}
|
||||||
|
@ -468,13 +478,37 @@ class App
|
||||||
return $this->currentTheme;
|
return $this->currentTheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current mobile theme name.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function getCurrentMobileTheme()
|
||||||
|
{
|
||||||
|
if ($this->mode->isInstall()) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($this->currentMobileTheme)) {
|
||||||
|
$this->computeCurrentMobileTheme();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->currentMobileTheme;
|
||||||
|
}
|
||||||
|
|
||||||
public function setCurrentTheme($theme)
|
public function setCurrentTheme($theme)
|
||||||
{
|
{
|
||||||
$this->currentTheme = $theme;
|
$this->currentTheme = $theme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function setCurrentMobileTheme($theme)
|
||||||
|
{
|
||||||
|
$this->currentMobileTheme = $theme;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Computes the current theme name based on the node settings, the user settings and the device type
|
* Computes the current theme name based on the node settings, the page owner settings and the user settings
|
||||||
*
|
*
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
|
@ -486,7 +520,7 @@ class App
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sane default
|
// Sane default
|
||||||
$this->currentTheme = $system_theme;
|
$this->setCurrentTheme($system_theme);
|
||||||
|
|
||||||
$page_theme = null;
|
$page_theme = null;
|
||||||
// Find the theme that belongs to the user whose stuff we are looking at
|
// Find the theme that belongs to the user whose stuff we are looking at
|
||||||
|
@ -499,24 +533,7 @@ class App
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$user_theme = Core\Session::get('theme', $system_theme);
|
$theme_name = $page_theme ?: Core\Session::get('theme', $system_theme);
|
||||||
|
|
||||||
// Specific mobile theme override
|
|
||||||
if (($this->is_mobile || $this->is_tablet) && Core\Session::get('show-mobile', true)) {
|
|
||||||
$system_mobile_theme = $this->config->get('system', 'mobile-theme');
|
|
||||||
$user_mobile_theme = Core\Session::get('mobile-theme', $system_mobile_theme);
|
|
||||||
|
|
||||||
// --- means same mobile theme as desktop
|
|
||||||
if (!empty($user_mobile_theme) && $user_mobile_theme !== '---') {
|
|
||||||
$user_theme = $user_mobile_theme;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($page_theme) {
|
|
||||||
$theme_name = $page_theme;
|
|
||||||
} else {
|
|
||||||
$theme_name = $user_theme;
|
|
||||||
}
|
|
||||||
|
|
||||||
$theme_name = Strings::sanitizeFilePathItem($theme_name);
|
$theme_name = Strings::sanitizeFilePathItem($theme_name);
|
||||||
if ($theme_name
|
if ($theme_name
|
||||||
|
@ -524,7 +541,40 @@ class App
|
||||||
&& (file_exists('view/theme/' . $theme_name . '/style.css')
|
&& (file_exists('view/theme/' . $theme_name . '/style.css')
|
||||||
|| file_exists('view/theme/' . $theme_name . '/style.php'))
|
|| file_exists('view/theme/' . $theme_name . '/style.php'))
|
||||||
) {
|
) {
|
||||||
$this->currentTheme = $theme_name;
|
$this->setCurrentTheme($theme_name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Computes the current mobile theme name based on the node settings, the page owner settings and the user settings
|
||||||
|
*/
|
||||||
|
private function computeCurrentMobileTheme()
|
||||||
|
{
|
||||||
|
$system_mobile_theme = $this->config->get('system', 'mobile-theme', '');
|
||||||
|
|
||||||
|
// Sane default
|
||||||
|
$this->setCurrentMobileTheme($system_mobile_theme);
|
||||||
|
|
||||||
|
$page_mobile_theme = null;
|
||||||
|
// Find the theme that belongs to the user whose stuff we are looking at
|
||||||
|
if ($this->profile_uid && ($this->profile_uid != local_user())) {
|
||||||
|
// Allow folks to override user themes and always use their own on their own site.
|
||||||
|
// This works only if the user is on the same server
|
||||||
|
if (!Core\PConfig::get(local_user(), 'system', 'always_my_theme')) {
|
||||||
|
$page_mobile_theme = Core\PConfig::get($this->profile_uid, 'system', 'mobile-theme');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$mobile_theme_name = $page_mobile_theme ?: Core\Session::get('mobile-theme', $system_mobile_theme);
|
||||||
|
|
||||||
|
$mobile_theme_name = Strings::sanitizeFilePathItem($mobile_theme_name);
|
||||||
|
if ($mobile_theme_name == '---'
|
||||||
|
||
|
||||||
|
in_array($mobile_theme_name, Theme::getAllowedList())
|
||||||
|
&& (file_exists('view/theme/' . $mobile_theme_name . '/style.css')
|
||||||
|
|| file_exists('view/theme/' . $mobile_theme_name . '/style.php'))
|
||||||
|
) {
|
||||||
|
$this->setCurrentMobileTheme($mobile_theme_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -534,7 +584,7 @@ class App
|
||||||
* Provide a sane default if nothing is chosen or the specified theme does not exist.
|
* Provide a sane default if nothing is chosen or the specified theme does not exist.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
* @throws HTTPException\InternalServerErrorException
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function getCurrentThemeStylesheetPath()
|
public function getCurrentThemeStylesheetPath()
|
||||||
{
|
{
|
||||||
|
@ -588,6 +638,10 @@ class App
|
||||||
* This probably should change to limit the size of this monster method.
|
* This probably should change to limit the size of this monster method.
|
||||||
*
|
*
|
||||||
* @param App\Module $module The determined module
|
* @param App\Module $module The determined module
|
||||||
|
* @param App\Router $router
|
||||||
|
* @param PConfiguration $pconfig
|
||||||
|
* @throws HTTPException\InternalServerErrorException
|
||||||
|
* @throws \ImagickException
|
||||||
*/
|
*/
|
||||||
public function runFrontend(App\Module $module, App\Router $router, PConfiguration $pconfig)
|
public function runFrontend(App\Module $module, App\Router $router, PConfiguration $pconfig)
|
||||||
{
|
{
|
||||||
|
@ -733,8 +787,7 @@ class App
|
||||||
$module = $module->determineClass($this->args, $router, $this->config);
|
$module = $module->determineClass($this->args, $router, $this->config);
|
||||||
|
|
||||||
// Let the module run it's internal process (init, get, post, ...)
|
// Let the module run it's internal process (init, get, post, ...)
|
||||||
$module->run($this->l10n, $this, $this->logger, $this->getCurrentTheme(), $_SERVER, $_POST);
|
$module->run($this->l10n, $this, $this->logger, $_SERVER, $_POST);
|
||||||
|
|
||||||
} catch (HTTPException $e) {
|
} catch (HTTPException $e) {
|
||||||
ModuleHTTPException::rawContent($e);
|
ModuleHTTPException::rawContent($e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,7 @@ class Module
|
||||||
*
|
*
|
||||||
* @return Module The determined module of this call
|
* @return Module The determined module of this call
|
||||||
*
|
*
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function determineClass(Arguments $args, Router $router, Core\Config\Configuration $config)
|
public function determineClass(Arguments $args, Router $router, Core\Config\Configuration $config)
|
||||||
{
|
{
|
||||||
|
@ -186,13 +186,12 @@ class Module
|
||||||
* @param Core\L10n\L10n $l10n The L10n instance
|
* @param Core\L10n\L10n $l10n The L10n instance
|
||||||
* @param App $app The whole Friendica app (for method arguments)
|
* @param App $app The whole Friendica app (for method arguments)
|
||||||
* @param LoggerInterface $logger The Friendica logger
|
* @param LoggerInterface $logger The Friendica logger
|
||||||
* @param string $currentTheme The chosen theme
|
|
||||||
* @param array $server The $_SERVER variable
|
* @param array $server The $_SERVER variable
|
||||||
* @param array $post The $_POST variables
|
* @param array $post The $_POST variables
|
||||||
*
|
*
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function run(Core\L10n\L10n $l10n, App $app, LoggerInterface $logger, string $currentTheme, array $server, array $post)
|
public function run(Core\L10n\L10n $l10n, App $app, LoggerInterface $logger, array $server, array $post)
|
||||||
{
|
{
|
||||||
if ($this->printNotAllowedAddon) {
|
if ($this->printNotAllowedAddon) {
|
||||||
info($l10n->t("You must be logged in to use addons. "));
|
info($l10n->t("You must be logged in to use addons. "));
|
||||||
|
@ -232,17 +231,6 @@ class Module
|
||||||
// This endpoint doesn't need any theme initialization or other comparable stuff.
|
// This endpoint doesn't need any theme initialization or other comparable stuff.
|
||||||
call_user_func([$this->module_class, 'rawContent']);
|
call_user_func([$this->module_class, 'rawContent']);
|
||||||
|
|
||||||
// Load current theme info after module has been initialized as theme could have been set in module
|
|
||||||
$theme_info_file = 'view/theme/' . $currentTheme . '/theme.php';
|
|
||||||
if (file_exists($theme_info_file)) {
|
|
||||||
require_once $theme_info_file;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (function_exists(str_replace('-', '_', $currentTheme) . '_init')) {
|
|
||||||
$func = str_replace('-', '_', $currentTheme) . '_init';
|
|
||||||
$func($app);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($server['REQUEST_METHOD'] === 'POST') {
|
if ($server['REQUEST_METHOD'] === 'POST') {
|
||||||
Core\Hook::callAll($this->module . '_mod_post', $post);
|
Core\Hook::callAll($this->module . '_mod_post', $post);
|
||||||
call_user_func([$this->module_class, 'post']);
|
call_user_func([$this->module_class, 'post']);
|
||||||
|
|
|
@ -364,6 +364,18 @@ class Page implements ArrayAccess
|
||||||
*/
|
*/
|
||||||
$this->initContent($module, $mode);
|
$this->initContent($module, $mode);
|
||||||
|
|
||||||
|
// Load current theme info after module has been initialized as theme could have been set in module
|
||||||
|
$currentTheme = $app->getCurrentTheme();
|
||||||
|
$theme_info_file = 'view/theme/' . $currentTheme . '/theme.php';
|
||||||
|
if (file_exists($theme_info_file)) {
|
||||||
|
require_once $theme_info_file;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (function_exists(str_replace('-', '_', $currentTheme) . '_init')) {
|
||||||
|
$func = str_replace('-', '_', $currentTheme) . '_init';
|
||||||
|
$func($app);
|
||||||
|
}
|
||||||
|
|
||||||
/* Create the page head after setting the language
|
/* Create the page head after setting the language
|
||||||
* and getting any auth credentials.
|
* and getting any auth credentials.
|
||||||
*
|
*
|
||||||
|
|
|
@ -99,6 +99,14 @@ class Session
|
||||||
unset($_SESSION[$name]);
|
unset($_SESSION[$name]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clears the current session array
|
||||||
|
*/
|
||||||
|
public static function clear()
|
||||||
|
{
|
||||||
|
$_SESSION = [];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sets the provided user's authenticated session
|
* @brief Sets the provided user's authenticated session
|
||||||
*
|
*
|
||||||
|
@ -107,6 +115,7 @@ class Session
|
||||||
* @param bool $login_initial
|
* @param bool $login_initial
|
||||||
* @param bool $interactive
|
* @param bool $interactive
|
||||||
* @param bool $login_refresh
|
* @param bool $login_refresh
|
||||||
|
* @throws \Friendica\Network\HTTPException\ForbiddenException
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public static function setAuthenticatedForUser(App $a, array $user_record, $login_initial = false, $interactive = false, $login_refresh = false)
|
public static function setAuthenticatedForUser(App $a, array $user_record, $login_initial = false, $interactive = false, $login_refresh = false)
|
||||||
|
|
|
@ -20,6 +20,7 @@ use Friendica\Core\Protocol;
|
||||||
use Friendica\Core\Renderer;
|
use Friendica\Core\Renderer;
|
||||||
use Friendica\Core\Session;
|
use Friendica\Core\Session;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
|
use Friendica\Core\Theme;
|
||||||
use Friendica\Core\Worker;
|
use Friendica\Core\Worker;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
use Friendica\Protocol\Diaspora;
|
use Friendica\Protocol\Diaspora;
|
||||||
|
@ -189,11 +190,10 @@ class Profile
|
||||||
$a->page['title'] = $a->profile['name'] . ' @ ' . Config::get('config', 'sitename');
|
$a->page['title'] = $a->profile['name'] . ' @ ' . Config::get('config', 'sitename');
|
||||||
|
|
||||||
if (!$profiledata && !PConfig::get(local_user(), 'system', 'always_my_theme')) {
|
if (!$profiledata && !PConfig::get(local_user(), 'system', 'always_my_theme')) {
|
||||||
$_SESSION['theme'] = $a->profile['theme'];
|
$a->setCurrentTheme($a->profile['theme']);
|
||||||
|
$a->setCurrentMobileTheme($a->profile['mobile-theme']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$_SESSION['mobile-theme'] = $a->profile['mobile-theme'];
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* load/reload current theme info
|
* load/reload current theme info
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -34,9 +34,6 @@ class Directory extends BaseModule
|
||||||
if (local_user()) {
|
if (local_user()) {
|
||||||
$app->page['aside'] .= Widget::findPeople();
|
$app->page['aside'] .= Widget::findPeople();
|
||||||
$app->page['aside'] .= Widget::follow();
|
$app->page['aside'] .= Widget::follow();
|
||||||
} else {
|
|
||||||
unset($_SESSION['theme']);
|
|
||||||
unset($_SESSION['mobile-theme']);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$output = '';
|
$output = '';
|
||||||
|
|
|
@ -14,14 +14,6 @@ class Home extends BaseModule
|
||||||
{
|
{
|
||||||
public static function content()
|
public static function content()
|
||||||
{
|
{
|
||||||
if (!empty($_SESSION['theme'])) {
|
|
||||||
unset($_SESSION['theme']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($_SESSION['mobile-theme'])) {
|
|
||||||
unset($_SESSION['mobile-theme']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$app = self::getApp();
|
$app = self::getApp();
|
||||||
$config = $app->getConfig();
|
$config = $app->getConfig();
|
||||||
|
|
||||||
|
|
|
@ -32,9 +32,6 @@ class Login extends BaseModule
|
||||||
{
|
{
|
||||||
$a = self::getApp();
|
$a = self::getApp();
|
||||||
|
|
||||||
Session::remove('theme');
|
|
||||||
Session::remove('mobile-theme');
|
|
||||||
|
|
||||||
if (local_user()) {
|
if (local_user()) {
|
||||||
$a->internalRedirect();
|
$a->internalRedirect();
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,13 +61,6 @@ class Register extends BaseModule
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($_SESSION['theme'])) {
|
|
||||||
unset($_SESSION['theme']);
|
|
||||||
}
|
|
||||||
if (!empty($_SESSION['mobile-theme'])) {
|
|
||||||
unset($_SESSION['mobile-theme']);
|
|
||||||
}
|
|
||||||
|
|
||||||
$username = defaults($_REQUEST, 'username' , '');
|
$username = defaults($_REQUEST, 'username' , '');
|
||||||
$email = defaults($_REQUEST, 'email' , '');
|
$email = defaults($_REQUEST, 'email' , '');
|
||||||
$openid_url = defaults($_REQUEST, 'openid_url', '');
|
$openid_url = defaults($_REQUEST, 'openid_url', '');
|
||||||
|
|
|
@ -4,12 +4,10 @@
|
||||||
*/
|
*/
|
||||||
namespace Friendica\Network;
|
namespace Friendica\Network;
|
||||||
|
|
||||||
use Friendica\Core\Hook;
|
use Friendica\BaseObject;
|
||||||
use Friendica\Core\Logger;
|
use Friendica\Core\Logger;
|
||||||
use Friendica\Core\PConfig;
|
use Friendica\Core\Session;
|
||||||
use Friendica\Core\System;
|
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
use Friendica\Util\DateTimeFormat;
|
|
||||||
use OAuthServer;
|
use OAuthServer;
|
||||||
use OAuthSignatureMethod_HMAC_SHA1;
|
use OAuthSignatureMethod_HMAC_SHA1;
|
||||||
use OAuthSignatureMethod_PLAINTEXT;
|
use OAuthSignatureMethod_PLAINTEXT;
|
||||||
|
@ -32,12 +30,13 @@ class FKOAuth1 extends OAuthServer
|
||||||
/**
|
/**
|
||||||
* @param string $uid user id
|
* @param string $uid user id
|
||||||
* @return void
|
* @return void
|
||||||
|
* @throws HTTPException\ForbiddenException
|
||||||
* @throws HTTPException\InternalServerErrorException
|
* @throws HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public function loginUser($uid)
|
public function loginUser($uid)
|
||||||
{
|
{
|
||||||
Logger::log("FKOAuth1::loginUser $uid");
|
Logger::log("FKOAuth1::loginUser $uid");
|
||||||
$a = \get_app();
|
$a = BaseObject::getApp();
|
||||||
$record = DBA::selectFirst('user', [], ['uid' => $uid, 'blocked' => 0, 'account_expired' => 0, 'account_removed' => 0, 'verified' => 1]);
|
$record = DBA::selectFirst('user', [], ['uid' => $uid, 'blocked' => 0, 'account_expired' => 0, 'account_removed' => 0, 'verified' => 1]);
|
||||||
|
|
||||||
if (!DBA::isResult($record)) {
|
if (!DBA::isResult($record)) {
|
||||||
|
@ -45,31 +44,7 @@ class FKOAuth1 extends OAuthServer
|
||||||
header('HTTP/1.0 401 Unauthorized');
|
header('HTTP/1.0 401 Unauthorized');
|
||||||
die('This api requires login');
|
die('This api requires login');
|
||||||
}
|
}
|
||||||
$_SESSION['uid'] = $record['uid'];
|
|
||||||
$_SESSION['theme'] = $record['theme'];
|
|
||||||
$_SESSION['mobile-theme'] = PConfig::get($record['uid'], 'system', 'mobile_theme');
|
|
||||||
$_SESSION['authenticated'] = 1;
|
|
||||||
$_SESSION['page_flags'] = $record['page-flags'];
|
|
||||||
$_SESSION['my_url'] = System::baseUrl() . '/profile/' . $record['nickname'];
|
|
||||||
$_SESSION['addr'] = $_SERVER['REMOTE_ADDR'];
|
|
||||||
$_SESSION["allow_api"] = true;
|
|
||||||
|
|
||||||
$a->user = $record;
|
Session::setAuthenticatedForUser($a, $record, true);
|
||||||
|
|
||||||
if (strlen($a->user['timezone'])) {
|
|
||||||
date_default_timezone_set($a->user['timezone']);
|
|
||||||
$a->timezone = $a->user['timezone'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$contact = DBA::selectFirst('contact', [], ['uid' => $_SESSION['uid'], 'self' => 1]);
|
|
||||||
if (DBA::isResult($contact)) {
|
|
||||||
$a->contact = $contact;
|
|
||||||
$a->cid = $contact['id'];
|
|
||||||
$_SESSION['cid'] = $a->cid;
|
|
||||||
}
|
|
||||||
|
|
||||||
DBA::update('user', ['login_date' => DateTimeFormat::utcNow()], ['uid' => $_SESSION['uid']]);
|
|
||||||
|
|
||||||
Hook::callAll('logged_in', $a->user);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue