Fix couple of issues

This commit is contained in:
DariusIII
2025-12-03 10:01:29 +01:00
parent 939a85c83f
commit ba14bc9c5b
2 changed files with 17 additions and 6 deletions
+5 -3
View File
@@ -413,7 +413,7 @@ class User extends Authenticatable
return self::whereEmail($email)->first();
}
public static function updateUserRole(int $uid, int|string $role, bool $applyPromotions = true, bool $stackRole = true, ?int $changedBy = null, ?string $originalExpiryBeforeEdits = null, bool $preserveCurrentExpiry = false): bool
public static function updateUserRole(int $uid, int|string $role, bool $applyPromotions = true, bool $stackRole = true, ?int $changedBy = null, ?string $originalExpiryBeforeEdits = null, bool $preserveCurrentExpiry = false, ?int $addYears = null): bool
{
// Handle role parameter - can be int, numeric string, or role name
if (is_numeric($role)) {
@@ -536,7 +536,8 @@ class User extends Authenticatable
// Calculate a new expiry date for the pending role
// Start with the role's base duration (addyears field converted to days)
$baseDays = $roleQuery->addyears * 365;
// Use the provided addYears parameter if available, otherwise use role's default
$baseDays = ($addYears !== null ? $addYears : $roleQuery->addyears) * 365;
$promotionDays = 0;
// Define roles that should not receive promotions
@@ -607,7 +608,8 @@ class User extends Authenticatable
// Apply the role change immediately
// Calculate base days from role's addyears field
$baseDays = $roleQuery->addyears * 365;
// Use the provided addYears parameter if available, otherwise use role's default
$baseDays = ($addYears !== null ? $addYears : $roleQuery->addyears) * 365;
$promotionDays = 0;
// Define roles that should not receive promotions