Skip to content

Conversation

@Ash-Crow
Copy link
Collaborator

@Ash-Crow Ash-Crow commented Dec 8, 2025

Purpose

Fix #1616.

For now, the reconciliation requests are imported through CSV in the Django admin, which sends confirmation email to both addresses. When both are checked, the actual reconciliation is processed, in a threefold process (update document acess, update invitations, update user status.)

Proposal

  • New UserReconciliationCsvImport model to manage the import of reconciliation requests through a task (user_reconciliation_csv_import_job)
  • New UserReconciliation model to store the user reconciliation requests themselves (a row = a active_user/inactive_user pair)
    • On save, a confirmation email is sent to the users
  • A process_reconciliation admin action process the action on the requested entries, if both emails have been checked.
    • Bulk update the DocumentAccess items, while managing the case where both users have access to the document (keeping the higher role)
    • Bulk update the Invitation items, while managing the case where both users have invitations for the document (keeping the higher role)
    • Bulk update the is_active status on both users
    • Manage the case where an email address already has access and one has an invitation (?)
  • Write unit tests

@Ash-Crow Ash-Crow force-pushed the sbl/user-reconciliation branch from 411c038 to 6d3a6bb Compare December 8, 2025 18:23
For now, the reconciliation requests are imported through CSV in the
Django admin, which sends confirmation email to both addresses.
When both are checked, the actual reconciliation is processed, in a
threefold process (update document acess, update invitations, update
user status.)
@Ash-Crow Ash-Crow force-pushed the sbl/user-reconciliation branch from 6d3a6bb to 1ae6644 Compare December 8, 2025 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Handle users with multiple accounts

2 participants