From 86ec8e804e6576bf67ca861186a2cb7c68873f34 Mon Sep 17 00:00:00 2001 From: LukeWCS Date: Sun, 7 Jul 2024 19:29:02 +0200 Subject: [PATCH] 1.1.2 --- composer.json | 4 ++-- docs/force-account-reactivation_build_changelog.md | 9 +++++++-- docs/force-account-reactivation_changelog_de.md | 5 +++++ docs/version_check.json | 2 +- event/listener.php | 9 +++++++-- 5 files changed, 22 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index c810423..bf17253 100644 --- a/composer.json +++ b/composer.json @@ -3,8 +3,8 @@ "type": "phpbb-extension", "description": "Allows you to force an automatic user account reactivation if it has been too long since the user last logged in.", "homepage": "https://github.com/LukeWCS", - "version": "1.1.1", - "time": "2024-06-24", + "version": "1.1.2", + "time": "2024-07-07", "license": "GPL-2.0-only", "authors": [ { diff --git a/docs/force-account-reactivation_build_changelog.md b/docs/force-account-reactivation_build_changelog.md index 91d42af..5d82036 100644 --- a/docs/force-account-reactivation_build_changelog.md +++ b/docs/force-account-reactivation_build_changelog.md @@ -1,10 +1,15 @@ +### 1.1.2 +* Release (2024-07-07) +* Fix: Wenn `group_memberships()` im Kontext fehlt, wird die phpBB Komponente nachgeladen. Damit wird ein FATAL beim ACP-Login von nicht-Gründern behoben. +* ACP-Logins werden von FAR jetzt generell ignoriert. + ### 1.1.1 * Release (2024-04-26) * ACP-Template: - * Im Twig Makro `status` kann jetzt direkt die Sprachvariable für die Beschreibung übergeben werden, wodurch ein separates `lang()` entfällt. + * Im Twig Makro `status()` kann jetzt direkt die Sprachvariable für die Beschreibung übergeben werden, wodurch ein separates `lang()` entfällt. * Aktuelles Makro `footer()` von LMR übernommen. * ACP-Controller: - * Aktuelle Funktion `set_meta_template_vars` von LMR übernommen. + * Aktuelle Funktion `set_meta_template_vars()` von LMR übernommen. * Kleinere Änderungen. * Sprachdateien: * Kleinere Änderungen. diff --git a/docs/force-account-reactivation_changelog_de.md b/docs/force-account-reactivation_changelog_de.md index 5ee2ad8..385d838 100644 --- a/docs/force-account-reactivation_changelog_de.md +++ b/docs/force-account-reactivation_changelog_de.md @@ -1,3 +1,8 @@ +### 1.1.2 +(2024-07-07) +* Fix: Wenn ein Benutzer mit Admin-Rechten aber ohne Gründer-Status einen ACP-Login durchgeführt hat, verursachte das einen FATAL, da in diesem Kontext eine benötigte phpBB Funktion nicht vorhanden war. Jetzt wird geprüft, ob die betreffende phpBB Funktion im Kontext vorhanden ist und wenn nicht, wird die entsprechende phpBB Komponente nachgeladen. +* Ergänzend zum Fix; FAR reagiert nur noch bei primären Logins, jedoch nicht mehr bei sekundären ACP-Logins. Das war ohnehin nicht sinnvoll. + ### 1.1.1 (2024-06-24) diff --git a/docs/version_check.json b/docs/version_check.json index 3030048..e6dbe9c 100644 --- a/docs/version_check.json +++ b/docs/version_check.json @@ -1,7 +1,7 @@ { "stable": { "3.3": { - "current": "1.1.1", + "current": "1.1.2", "announcement": "https://github.com/LukeWCS/force-account-reactivation/releases", "eol": null, "security": false diff --git a/event/listener.php b/event/listener.php index 68c4a61..327106e 100644 --- a/event/listener.php +++ b/event/listener.php @@ -63,12 +63,13 @@ public function check_force_reactivation($event): void // Check requirements if ($event['login']['status'] != LOGIN_SUCCESS || $user_row['user_type'] != USER_NORMAL + || $event['admin'] || !$this->config['foraccrea_enable'] || !$this->config['email_enable'] || $user_row['user_email'] == '' ) { - // Requirements not met, return control to phpBB. + // User does not need to be verified, return control to phpBB. return; } @@ -82,6 +83,10 @@ public function check_force_reactivation($event): void $user_lastvisit = $user_last_session['session_time'] ?? $user_row['user_lastvisit']; // Determine the user's groups. + if (!function_exists('group_memberships')) + { + include($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext); + } $group_memberships = group_memberships(false, $user_row['user_id']) ?: []; $user_group_ids = array_column($group_memberships, 'group_id'); @@ -122,7 +127,7 @@ public function check_force_reactivation($event): void || $user_lastvisit >= strtotime("- {$this->config['foraccrea_time_range']} {$this->config['foraccrea_time_range_type']}") ) { - // We don't have to act, user is allowed to pass. + // User is allowed to pass, return control to phpBB. return; }