mirror of
https://github.com/chatwoot/chatwoot.git
synced 2026-06-04 21:02:35 +08:00
# Pull Request Template ## Description This PR adds IMAP authentication mechanism selection to Chatwoot's email inbox configuration. Users can now choose between 'plain', 'login', and 'cram-md5' authentication methods when configuring IMAP settings, providing flexibility for different email providers that require specific authentication types. https://github.com/chatwoot/chatwoot/issues/8867 The implementation includes: - Frontend dropdown with numeric keys (1, 2, 3) matching SMTP auth style - Backend API validation for allowed authentication mechanisms - Consistent 'cram-md5' format throughout the codebase - Updated IMAP service to handle different auth types properly This feature maintains consistency with existing SMTP authentication options and follows the established UI/UX patterns in the application. ## Type of change Please delete options that are not relevant. - [x] New feature (non-breaking change which adds functionality) - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Breaking change (fix or feature that would cause existing functionality not to work as expected) - [ ] This change requires a documentation update ## How Has This Been Tested? ### Manual Testing: - Tested in Docker environment - Verified IMAP auth dropdown appears in inbox settings - Confirmed all three auth mechanisms (plain, login, cram-md5) can be selected and saved - Tested API validation by attempting to save invalid auth mechanisms ### Automated Testing: - Updated existing IMAP service tests to use consistent lowercase values - Updated API controller tests for authentication parameter handling - All tests pass locally with the new changes ### Test Configuration: - Tested with both new and existing inbox configurations ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my code - [x] I have commented on my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] Any dependent changes have been merged and published in downstream modules ## Additional Notes - This feature is backward compatible and doesn't break existing IMAP configurations - The 'cram-md5' format is used consistently throughout (UI, API, storage, services) - Net::IMAP compatibility is maintained by converting to 'CRAM-MD5' internally - Follows the same pattern established by SMTP authentication configuration --------- Co-authored-by: João Santos <joao.santos@madigital.eu> Co-authored-by: Sony Mathew <sony@chatwoot.com> |
||
|---|---|---|
| .. | ||
| bot_message | ||
| captain | ||
| channel | ||
| facebook_message | ||
| instagram_message | ||
| integrations | ||
| account_saml_settings.rb | ||
| account_users.rb | ||
| accounts.rb | ||
| agent_bot_inboxes.rb | ||
| agent_bots.rb | ||
| agent_capacity_policies.rb | ||
| applied_slas.rb | ||
| articles.rb | ||
| assignment_policies.rb | ||
| automation_rules.rb | ||
| calls.rb | ||
| campaigns.rb | ||
| canned_responses.rb | ||
| categories.rb | ||
| clearbit_response.rb | ||
| companies.rb | ||
| contact_inbox.rb | ||
| contacts.rb | ||
| conversation_participants.rb | ||
| conversations.rb | ||
| csat_survey_responses.rb | ||
| custom_attribute_definitions.rb | ||
| custom_filters.rb | ||
| custom_roles.rb | ||
| dashboard_app.rb | ||
| data_import.rb | ||
| email_template.rb | ||
| folders.rb | ||
| inbox_assignment_policies.rb | ||
| inbox_capacity_limits.rb | ||
| inbox_members.rb | ||
| inboxes.rb | ||
| installation_config.rb | ||
| labels.rb | ||
| macros.rb | ||
| mentions.rb | ||
| messages.rb | ||
| notes.rb | ||
| notification_subscriptions.rb | ||
| notifications.rb | ||
| platform_apps_permissibles.rb | ||
| platform_apps.rb | ||
| portals.rb | ||
| related_categories.rb | ||
| reporting_event_rollups.rb | ||
| reporting_events.rb | ||
| sla_events.rb | ||
| sla_policies.rb | ||
| super_admins.rb | ||
| team_members.rb | ||
| teams.rb | ||
| users.rb | ||
| webhooks.rb | ||
| working_hours.rb | ||