From ada699536a53872b6fde97e9f64750b315addc5d Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 17 Jul 2019 23:08:03 -0400 Subject: [PATCH 1/3] Prevent users from forcibly installing a disabled theme in mod/settings --- mod/settings.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/mod/settings.php b/mod/settings.php index d744dbff17..8c9d2a49e3 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -369,19 +369,19 @@ function settings_post(App $a) PConfig::set(local_user(), 'system', 'bandwidth_saver' , $bandwidth_saver); PConfig::set(local_user(), 'system', 'smart_threading' , $smart_threading); - if ($theme == $a->user['theme']) { - // call theme_post only if theme has not been changed - if (($themeconfigfile = get_theme_config_file($theme)) !== null) { - require_once $themeconfigfile; - theme_post($a); + if (in_array($theme, Theme::getAllowedList())) { + if ($theme == $a->user['theme']) { + // call theme_post only if theme has not been changed + if (($themeconfigfile = get_theme_config_file($theme)) !== null) { + require_once $themeconfigfile; + theme_post($a); + } + } else { + $a->getDatabase()->update('user', ['theme' => $theme], ['uid' => local_user()]); } + } else { + notice(L10n::t('The theme you chose isn\'t available.')); } - Theme::install($theme); - - q("UPDATE `user` SET `theme` = '%s' WHERE `uid` = %d", - DBA::escape($theme), - intval(local_user()) - ); Hook::callAll('display_settings_post', $_POST); $a->internalRedirect('settings/display'); From ac53ee8e0f52ed3a0ca37f21a4f0f4578187b431 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 17 Jul 2019 23:08:26 -0400 Subject: [PATCH 2/3] Show node's theme as selected in display setting for new users --- mod/settings.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod/settings.php b/mod/settings.php index 8c9d2a49e3..2d8162dd77 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -912,8 +912,8 @@ function settings_content(App $a) } } - $theme_selected = Session::get('theme', $default_theme); - $mobile_theme_selected = Session::get('mobile-theme', $default_mobile_theme); + $theme_selected = $a->user['theme'] ?: $default_theme; + $mobile_theme_selected = $a->user['mobile-theme'] ?: $default_mobile_theme; $nowarn_insecure = intval(PConfig::get(local_user(), 'system', 'nowarn_insecure')); From 8e9a0e0e500b4906253c4fb6863ef09c215dea62 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 17 Jul 2019 23:08:56 -0400 Subject: [PATCH 3/3] Show frio theme customization settings for new users --- view/theme/frio/config.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/view/theme/frio/config.php b/view/theme/frio/config.php index d1591273fb..0f3eda4c94 100644 --- a/view/theme/frio/config.php +++ b/view/theme/frio/config.php @@ -56,15 +56,17 @@ function theme_content(App $a) } $arr = []; - $arr['scheme'] = PConfig::get(local_user(), 'frio', 'scheme', PConfig::get(local_user(), 'frio', 'schema')); + $node_scheme = Config::get('frio', 'scheme', Config::get('frio', 'scheme')); + + $arr['scheme'] = PConfig::get(local_user(), 'frio', 'scheme', PConfig::get(local_user(), 'frio', 'schema', $node_scheme)); $arr['share_string'] = ''; - $arr['nav_bg'] = PConfig::get(local_user(), 'frio', 'nav_bg'); - $arr['nav_icon_color'] = PConfig::get(local_user(), 'frio', 'nav_icon_color'); - $arr['link_color'] = PConfig::get(local_user(), 'frio', 'link_color'); - $arr['background_color'] = PConfig::get(local_user(), 'frio', 'background_color'); - $arr['contentbg_transp'] = PConfig::get(local_user(), 'frio', 'contentbg_transp'); - $arr['background_image'] = PConfig::get(local_user(), 'frio', 'background_image'); - $arr['bg_image_option'] = PConfig::get(local_user(), 'frio', 'bg_image_option'); + $arr['nav_bg'] = PConfig::get(local_user(), 'frio', 'nav_bg' , Config::get('frio', 'nav_bg')); + $arr['nav_icon_color'] = PConfig::get(local_user(), 'frio', 'nav_icon_color' , Config::get('frio', 'nav_icon_color')); + $arr['link_color'] = PConfig::get(local_user(), 'frio', 'link_color' , Config::get('frio', 'link_color')); + $arr['background_color'] = PConfig::get(local_user(), 'frio', 'background_color', Config::get('frio', 'background_color')); + $arr['contentbg_transp'] = PConfig::get(local_user(), 'frio', 'contentbg_transp', Config::get('frio', 'contentbg_transp')); + $arr['background_image'] = PConfig::get(local_user(), 'frio', 'background_image', Config::get('frio', 'background_image')); + $arr['bg_image_option'] = PConfig::get(local_user(), 'frio', 'bg_image_option' , Config::get('frio', 'bg_image_option')); return frio_form($arr); }