From 11e2dc0956ca81b4f599b3f10d5268a2af535626 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de>
Date: Tue, 4 Mar 2025 16:35:04 +0100
Subject: [PATCH 1/5] fix: query quiqqer user int id for membership users

---
 src/QUI/Memberships/Users/Handler.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/QUI/Memberships/Users/Handler.php b/src/QUI/Memberships/Users/Handler.php
index 8217bf6..11adb1f 100644
--- a/src/QUI/Memberships/Users/Handler.php
+++ b/src/QUI/Memberships/Users/Handler.php
@@ -224,7 +224,7 @@ public function getMembershipUsersByUserId(int | string $userId, bool $includeAr
     {
         if (is_int($userId)) {
             try {
-                $userId = QUI::getUsers()->get($userId)->getUUID();
+                $userId = QUI::getUsers()->get($userId)->getId();
             } catch (QUI\Exception) {
             }
         }
-- 
GitLab


From 98bbd033f14c32e16f5915eb4e1e9032613f42f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de>
Date: Tue, 4 Mar 2025 16:35:08 +0100
Subject: [PATCH 2/5] style: code style

---
 src/QUI/Memberships/Users/MembershipUser.php | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/QUI/Memberships/Users/MembershipUser.php b/src/QUI/Memberships/Users/MembershipUser.php
index ec77f02..f7eff41 100644
--- a/src/QUI/Memberships/Users/MembershipUser.php
+++ b/src/QUI/Memberships/Users/MembershipUser.php
@@ -19,7 +19,6 @@
 use QUI\Permissions\Permission;
 use QUI\Verification\Interface\VerificationFactoryInterface;
 use QUI\Verification\VerificationFactory;
-use QUI\Verification\Verifier;
 use QUI\Verification\Entity\LinkVerification;
 use QUI\Verification\Interface\VerificationRepositoryInterface;
 use QUI\Verification\VerificationRepository;
-- 
GitLab


From 232c7be0e4e51f330a66b3917cabc98ab084f248 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de>
Date: Tue, 4 Mar 2025 16:42:52 +0100
Subject: [PATCH 3/5] fix: correctly check if variable is string instead of int

---
 src/QUI/Memberships/Users/Handler.php | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/QUI/Memberships/Users/Handler.php b/src/QUI/Memberships/Users/Handler.php
index 11adb1f..8a64b81 100644
--- a/src/QUI/Memberships/Users/Handler.php
+++ b/src/QUI/Memberships/Users/Handler.php
@@ -13,6 +13,8 @@
 use QUI\Memberships\Utils;
 use QUI\Permissions\Permission;
 
+use function is_string;
+
 class Handler extends Factory
 {
     /**
@@ -222,7 +224,7 @@ public function getIdsByMembershipId(int $membershipId, bool $includeArchived =
      */
     public function getMembershipUsersByUserId(int | string $userId, bool $includeArchived = false): array
     {
-        if (is_int($userId)) {
+        if (is_string($userId)) {
             try {
                 $userId = QUI::getUsers()->get($userId)->getId();
             } catch (QUI\Exception) {
-- 
GitLab


From 9a4d6317ee7fa0753b7436c72d47ab04ec7c60a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de>
Date: Tue, 4 Mar 2025 16:45:13 +0100
Subject: [PATCH 4/5] fix: allow NULL in formatDate

---
 src/QUI/Memberships/Users/MembershipUser.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/QUI/Memberships/Users/MembershipUser.php b/src/QUI/Memberships/Users/MembershipUser.php
index f7eff41..60fa689 100644
--- a/src/QUI/Memberships/Users/MembershipUser.php
+++ b/src/QUI/Memberships/Users/MembershipUser.php
@@ -951,11 +951,11 @@ public function getHistory(): array
     /**
      * Format date based on User Locale and duration mode
      *
-     * @param DateTime|string $date - Formatted date YYYY-MM-DD HH:MM:SS or \DateTime object
+     * @param DateTime|string|null $date - Formatted date YYYY-MM-DD HH:MM:SS or \DateTime object
      * @return string|false - formatted date or false on error
      * @throws Exception
      */
-    protected function formatDate(DateTime | string $date): bool | string
+    protected function formatDate(DateTime | string | null $date): bool | string
     {
         if (empty($date) || $date === '0000-00-00 00:00:00') {
             return false;
-- 
GitLab


From b7cce748cfc75a0a6e81336e92fa147ee6332297 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de>
Date: Wed, 5 Mar 2025 08:25:19 +0100
Subject: [PATCH 5/5] fix: only show cancel btn in correct circumstances; use
 correct verification class for cancel abort

---
 bin/controls/profile/UserProfile.js          | 2 +-
 src/QUI/Memberships/Users/MembershipUser.php | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bin/controls/profile/UserProfile.js b/bin/controls/profile/UserProfile.js
index 26a253a..d8cc11b 100644
--- a/bin/controls/profile/UserProfile.js
+++ b/bin/controls/profile/UserProfile.js
@@ -228,7 +228,7 @@ define('package/quiqqer/memberships/bin/controls/profile/UserProfile', [
             }
 
             // if autoextend and not cancelled -> hide endDate
-            if (Membership.cancelStatus == 0) {
+            if (!Membership.cancelled && Membership.cancelStatus == 0) {
                 var CancelContainer = MembershipElm.getElement('.quiqqer-memberships-profile-userprofile-btn');
 
                 // cancel btn
diff --git a/src/QUI/Memberships/Users/MembershipUser.php b/src/QUI/Memberships/Users/MembershipUser.php
index 60fa689..2999622 100644
--- a/src/QUI/Memberships/Users/MembershipUser.php
+++ b/src/QUI/Memberships/Users/MembershipUser.php
@@ -1223,7 +1223,7 @@ protected function createAbortCancelVerification(): LinkVerification
     {
         return $this->verificationFactory->createLinkVerification(
             'quiqqer-memberships-users-cancel-abort-' . $this->id,
-            new CancelVerification(),
+            new AbortCancelVerification(),
             [
                 'membershipUserId' => $this->id
             ],
-- 
GitLab