Comments (4)
The right route to go will depend on whether it makes sense to have multiple users records with the same email address.
Since the email address has not been unique till now it is likely to be a breaking change if we now make it unique and so would have to justify it.
Many of the login recovery plugins rely on a unique email address (for the most part across all apps these days you are requested to enter an email address for recovery). The logical approach is to make the email address unique and the path I would support. Modern email servers allow the use of a + sign in the email name part and ignores everything from the + onwards for delivering the email to the right inbox allowing people to use the same email address for multiple user accounts. All of the below would deliver to the same inbox:
[email protected]
[email protected]
[email protected]
If we made the email address unique then we could provide an upgrade script that searches for and modifies the 2nd and subsequent duplicate email addresses with a numeric number something like below:
[email protected]
[email protected]
[email protected]
from django-helpdesk.
Would making the email address unique be limited to the HelpDesk App? I guess so, and would that then mean having a customised auth.user?
from django-helpdesk.
Unfortunately it would affect all other apps within the same Django project since they all must use the same User object for authentication to work.
The least disruptive route is to change the query to fetch all active user records (|the current query fails to omit inactive reccords) and if there is more than 1 then pick the first one and log a warning that there are multiple users with the same email address.
That may have undesirable consequences in that the user would have to be logged in against the user record that was first in the list to see it. Otherwise it relies on sending an email to that email address and the user will have to figure which account to login as to see it.
The only other way is to simply log an error message if there is more than 1 user recrod matching the email and not add any tocket for it.
from django-helpdesk.
Perhaps the simplest option is to add a hook into the save signal on the user model and check for duplicated email addresses manually. We could log a warning to the log system that it has consequences and then at least the issue is notified. We could send an email to the user when it is detected.
Because this is developed as a plugin app, there is no easy way to nofity a user via the UI that they may experience problems using multiple accounts wit hthe same email address.
from django-helpdesk.
Related Issues (20)
- Why is the API optional? HOT 4
- Can't "take" tickets from dashboard due to checklist bug HOT 4
- The public submission form should be secured to prevent spam
- Now that we have the production ready standalone helpdesk we should get rid of the demodesk config to reduce confusion HOT 3
- Public ticket update needs to be a separate view from staff update
- Ticket description and the first follow up both contain the same text in their body HOT 2
- Bootstrap forms version in upgrade documentation does not match requirements.
- Helpdesk limits which files can be attached HOT 3
- Failed to install demo using both 'make rundemo' and docker variants HOT 2
- Unable to change Ticket title in "Change Further Details" section of the ticket view. HOT 1
- Documentation at readthedocs outdated HOT 1
- Ticket links in 'My Tickets' view are broken when not installed in site root. HOT 1
- logout stops working with Django >4.0 HOT 2
- Configurable list of bookmarks in sidebar menu
- Graceful handling of dataTable errors HOT 2
- "GET /logout/ HTTP/1.0" 405 Method Not Allowed HOT 1
- Send Email asynchronously HOT 3
- Make parent tickets visible in ticket view, improve handling of dependencies
- Uploading attachment with extension not in HELPDESK_VALID_EXTENSIONS raises error
- `make checkformat` fails with missing flake8 in fresh checkout.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-helpdesk.