feature request #7276
openMake User.email a unique field.
10%
Description
Make User.email a unique field.
In the context of password recovery it seems also a requirement to make the email address unique in the UserAccount table.
In order to recover a password the user can usually either supply the login or email address.
NOTE: As long as #7275 is not implemented or if it is rejected it is NOT possible to implement by standard
@Column(unique = true)
as NULL values are duplicates otherwise.
Related issues
Updated by Andreas Müller about 6 years ago
- Copied from feature request #7275: [DISCUSS] Require email address for Users added
Updated by Andreas Müller about 6 years ago
This only makes sense if email is an obligatory field, which currently is not the case and probably also will not be the case in future.
Updated by Andreas Müller almost 6 years ago
- Status changed from New to Resolved
- % Done changed from 0 to 50
Updated by Andreas Müller almost 6 years ago
- Description updated (diff)
- Status changed from Resolved to New
Updated by Andreas Müller almost 6 years ago
- Status changed from New to Resolved
Applied in changeset cdmlib|b28a90506f2310c1ebf51dcd2b939ef92814c0be.
Updated by Andreas Müller almost 6 years ago
- Status changed from Resolved to Feedback
- Assignee changed from Andreas Müller to Andreas Kohlbecker
For now I suggest to reject this feature request as long as NULL values are allowed (#7275).
We could only try to check programmatically if an email address already exists. Also we could try to write a validation rule NullOrUnique. But these solutions might be new tickets. What do you think?
Updated by Andreas Kohlbecker almost 6 years ago
- Target version changed from CDM UML 5.0 to Release 5.1
Updated by Andreas Müller almost 6 years ago
- Target version changed from Release 5.1 to CDM UML 5.5
Updated by Andreas Müller almost 5 years ago
- Target version changed from CDM UML 5.5 to CDM UML 5.15
Updated by Andreas Müller over 3 years ago
- Target version changed from CDM UML 5.15 to CDM UML 5.43
Updated by Andreas Müller over 2 years ago
- Status changed from Feedback to In Progress
- Assignee changed from Andreas Kohlbecker to Andreas Müller
- % Done changed from 50 to 10
AM:
Eigentlich dachte ich ja wir können sie als rejected schließen. Aber das Thema uniquenes ist natürlich schon kritisch, da dieses irgendwie gecheckt werden muss und das passiert natürlich am sichersten auf DB Ebene.
Ansonsten können User im schlimmsten Fall das Recovery für einen anderen User machen, also ziemliches Sicherheitsrisiko, oder es funktioniert nicht, wenn versehentlich eine Mailadresse 2x existiert (was versehentlich bei Importen oder so nicht ganz auszuschließen ist).
Vermutlich sollten doch deinen Vorschlag umsetzen und für User ohne email eine Emailadresse verwenden, die die UUID enthält und einem klaren Muster entspricht, z.B. 1a73da6c-c8f4-497a-9354-b7abb0587efe@noemail.com . User mit dieser Mail Adresse können nicht an der Recovery teilnehmen. Im Editor sollten diese Adressen auch nicht angezeigt werden, sondern sie sollten nur von der Persistence gehandelt werden.
AK:
Ja, die Uniqueness ist nötig.
Als Topleveldomain im email template sollen wir jedoch *.test verewnden, diese ist für interne Test-Zwecke reserviert und somit eindeutig ungültig, auch für externe Dienste, sollte eine dieser Mailadressen mal nach außen sickern.
also {user.uuid}@cybertaxonomy.test oder ...@noemail.test - entscheide du!
Updated by Andreas Müller over 2 years ago
- Copied from deleted (feature request #7275: [DISCUSS] Require email address for Users)
Updated by Andreas Müller over 2 years ago
- Blocked by feature request #7275: [DISCUSS] Require email address for Users added
Updated by Andreas Müller about 2 months ago
- Related to bug #10461: Duplicate user name not handled correctly during registration added