debug: add comprehensive logging to membership linking feature
- Added detailed error logging to link_membership_user processor - Added error handling for database operations in processor - Added comprehensive logging to linkSecondaryUserToMembership function - Logs now show: CSRF validation, database operations, link creation, permission grants - Improved error messages for debugging
This commit is contained in:
@@ -2924,17 +2924,25 @@ function linkSecondaryUserToMembership($primary_user_id, $secondary_user_id, $re
|
||||
$conn = openDatabaseConnection();
|
||||
|
||||
if ($conn === null) {
|
||||
error_log("linkSecondaryUserToMembership: Database connection failed");
|
||||
return ['success' => false, 'message' => 'Database connection failed'];
|
||||
}
|
||||
|
||||
error_log("linkSecondaryUserToMembership: primary=$primary_user_id, secondary=$secondary_user_id, relationship=$relationship");
|
||||
|
||||
// Validation: primary and secondary user IDs must be different
|
||||
if ($primary_user_id === $secondary_user_id) {
|
||||
error_log("linkSecondaryUserToMembership: Cannot link user to themselves");
|
||||
return ['success' => false, 'message' => 'Cannot link user to themselves'];
|
||||
}
|
||||
|
||||
// Validation: primary user must have active membership
|
||||
if (!getUserMemberStatus($primary_user_id)) {
|
||||
$memberStatus = getUserMemberStatus($primary_user_id);
|
||||
error_log("linkSecondaryUserToMembership: Primary user member status = " . ($memberStatus ? 'true' : 'false'));
|
||||
|
||||
if (!$memberStatus) {
|
||||
$conn->close();
|
||||
error_log("linkSecondaryUserToMembership: Primary user does not have active membership");
|
||||
return ['success' => false, 'message' => 'Primary user does not have active membership'];
|
||||
}
|
||||
|
||||
@@ -2947,6 +2955,7 @@ function linkSecondaryUserToMembership($primary_user_id, $secondary_user_id, $re
|
||||
|
||||
if ($userResult->num_rows === 0) {
|
||||
$conn->close();
|
||||
error_log("linkSecondaryUserToMembership: Secondary user does not exist");
|
||||
return ['success' => false, 'message' => 'Secondary user does not exist'];
|
||||
}
|
||||
|
||||
@@ -2959,12 +2968,14 @@ function linkSecondaryUserToMembership($primary_user_id, $secondary_user_id, $re
|
||||
|
||||
if ($existingResult->num_rows > 0) {
|
||||
$conn->close();
|
||||
error_log("linkSecondaryUserToMembership: Users are already linked");
|
||||
return ['success' => false, 'message' => 'Users are already linked'];
|
||||
}
|
||||
|
||||
try {
|
||||
// Start transaction
|
||||
$conn->begin_transaction();
|
||||
error_log("linkSecondaryUserToMembership: Starting transaction");
|
||||
|
||||
// Insert link
|
||||
$insertLink = $conn->prepare("
|
||||
@@ -2972,8 +2983,13 @@ function linkSecondaryUserToMembership($primary_user_id, $secondary_user_id, $re
|
||||
VALUES (?, ?, ?, NOW(), NOW())
|
||||
");
|
||||
$insertLink->bind_param("iis", $primary_user_id, $secondary_user_id, $relationship);
|
||||
$insertLink->execute();
|
||||
|
||||
if (!$insertLink->execute()) {
|
||||
throw new Exception("Failed to insert link: " . $insertLink->error);
|
||||
}
|
||||
|
||||
$linkId = $conn->insert_id;
|
||||
error_log("linkSecondaryUserToMembership: Link created with ID = $linkId");
|
||||
$insertLink->close();
|
||||
|
||||
// Grant default permissions to secondary user
|
||||
@@ -2991,17 +3007,24 @@ function linkSecondaryUserToMembership($primary_user_id, $secondary_user_id, $re
|
||||
VALUES (?, ?, NOW())
|
||||
");
|
||||
$insertPerm->bind_param("is", $linkId, $permission);
|
||||
$insertPerm->execute();
|
||||
|
||||
if (!$insertPerm->execute()) {
|
||||
throw new Exception("Failed to insert permission: " . $insertPerm->error);
|
||||
}
|
||||
|
||||
error_log("linkSecondaryUserToMembership: Permission '$permission' granted");
|
||||
$insertPerm->close();
|
||||
}
|
||||
|
||||
// Commit transaction
|
||||
$conn->commit();
|
||||
error_log("linkSecondaryUserToMembership: Transaction committed successfully");
|
||||
$conn->close();
|
||||
|
||||
return ['success' => true, 'message' => 'User successfully linked to membership', 'link_id' => $linkId];
|
||||
|
||||
} catch (Exception $e) {
|
||||
error_log("linkSecondaryUserToMembership: Exception - " . $e->getMessage());
|
||||
$conn->rollback();
|
||||
$conn->close();
|
||||
return ['success' => false, 'message' => 'Failed to create link: ' . $e->getMessage()];
|
||||
@@ -3157,3 +3180,4 @@ function unlinkSecondaryUser($link_id, $primary_user_id)
|
||||
return ['success' => false, 'message' => 'Failed to remove link: ' . $e->getMessage()];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user