Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple Email addresses #26866

Open
5 of 9 tasks
blizzz opened this issue May 3, 2021 · 2 comments
Open
5 of 9 tasks

Multiple Email addresses #26866

blizzz opened this issue May 3, 2021 · 2 comments
Assignees

Comments

@blizzz
Copy link
Member

blizzz commented May 3, 2021

Allow users to set multiple email addresses, and select one as primary address. Confirmation via link is required. Additional addresses are being considered in e.g. share dialogues.

  • \OC(P)\Accounts\ components are extended to support multi-value properties in general and emails in particular Extend Accounts with multivalue properties (PropertyCollection) #27189

  • \OCA\Settings\Controller\UsersController methods are discontinued in favor of User Provisining API. Currently they exist in parallel. The User Provisioning API has to be extended accordingly make Provisioning API aware of multiple mails #27474

  • \OCA\DAV\CardDAV\Converter::createCardFromUser has to be extended to support additional multiple values

  • Mail verification has to be implemented (following the password reset, same mechanisms) – part of Allow users to choose a different email for notifications #28422

  • coniguration option for setting notification mails and UI controls – Allow users to choose a different email for notifications #28422 and let user choose notification email in user settings #28840

  • Email uniquness cannot be guaranteed through DB structure (for they are not unique and would potentially break setups). It is ensured when creating and verifying additional email addresses.

    • don' insert an email when one is already known (not safe of race conditions)
      • when an email is confirmed, ensure that the same pending addresses are removed (handling a potential race condition)
      • And when an email is introduced by the user backend:
      • if the additional address state is…
        • not verified: → remove it
        • verified:
          • same user: remove additional i.e. remove duplicate
          • different user: write to audit log (this is then something only the admin can resolve)
  • occ commands for adding and removing mails; and making one primary

  • Frontend email section in Vue with Integration Multiple Emails UI and Integration #27379

  • Preserve order and scope of additional emails

    • When updating an additional email address the order is not preserved
    • Scope is also not preserved for the updated email
@blizzz blizzz added enhancement 0. Needs triage Pending check for reproducibility or if it fits our roadmap overview labels May 3, 2021
@blizzz blizzz added this to the Nextcloud 22 milestone May 3, 2021
@blizzz blizzz self-assigned this May 3, 2021
@blizzz blizzz added 2. developing Work in progress and removed 0. Needs triage Pending check for reproducibility or if it fits our roadmap labels May 3, 2021
@bpcurse
Copy link

bpcurse commented May 4, 2021

Confirmation via link is required.

Will this close #15373, too?
Meaning all email address changes need to be verified, not just adding additional ones?

Linking it here as a reference/reminder to close it afterwards.

@blizzz
Copy link
Member Author

blizzz commented May 4, 2021

Confirmation via link is required.

Will this close #15373, too?
Meaning all email address changes need to be verified, not just adding additional ones?

Linking it here as a reference/reminder to close it afterwards.

For now it is only additional addresses. User backend addresses are not always writable and may be provided directly by the user backend. If a looup server (something like a global addressbook) is being used, it will actually cause a confirmation (since it does not trust the provided data). Nevertheless, I see the use case for confirming those as well, when users are able to change it. It's not in scope here, maybe it can be dealt with as by-catch, but no promises.

@MichaIng MichaIng linked a pull request Jun 8, 2021 that will close this issue
26 tasks
@Pytal Pytal self-assigned this Jun 16, 2021
@Pytal Pytal modified the milestones: Nextcloud 22, Nextcloud 23 Jun 30, 2021
@blizzz blizzz reopened this Jul 15, 2021
@Pytal Pytal removed a link to a pull request Jul 15, 2021
26 tasks
@Pytal Pytal mentioned this issue Oct 23, 2021
20 tasks
@blizzz blizzz modified the milestones: Nextcloud 23, Nextcloud 24 Nov 30, 2021
@blizzz blizzz modified the milestones: Nextcloud 24, Nextcloud 25 Apr 21, 2022
pboguslawski added a commit to ibpl/server that referenced this issue Sep 1, 2022
Added config parameter `allow_to_change_additional_emails` to disallow
changing additional e-mail addresses (i.e. when LDAP DB should be
the only source of user e-mail addresses). Use

```
config:system:set allow_to_change_additional_emails --value='false' --type=boolean
```

to disallow and

```
config:system:set allow_to_change_additional_emails --value='true' --type=boolean
```

to allow changing additional user e-mail addresses.

Related: nextcloud#26866
Author-Change-Id: IB#1124888
pboguslawski added a commit to ibpl/server that referenced this issue Sep 1, 2022
Added config parameter `allow_to_change_additional_emails` to disallow
changing additional e-mail addresses (i.e. when LDAP DB should be
the only source of user e-mail addresses). Use

```
config:system:set allow_to_change_additional_emails --value='false' --type=boolean
```

to disallow and

```
config:system:set allow_to_change_additional_emails --value='true' --type=boolean
```

to allow changing additional user e-mail addresses.

Related: nextcloud#26866
Author-Change-Id: IB#1124888
pboguslawski added a commit to ibpl/server that referenced this issue Sep 1, 2022
Added config parameter `allow_to_change_additional_emails` to disallow
changing additional e-mail addresses (i.e. when LDAP DB should be
the only source of user e-mail addresses). Use

```
config:system:set allow_to_change_additional_emails --value='false' --type=boolean
```

to disallow and

```
config:system:set allow_to_change_additional_emails --value='true' --type=boolean
```

to allow changing additional user e-mail addresses.

Related: nextcloud#26866
Author-Change-Id: IB#1124888
@blizzz blizzz modified the milestones: Nextcloud 25, Nextcloud 26 Oct 19, 2022
@blizzz blizzz modified the milestones: Nextcloud 26, Nextcloud 27 Mar 9, 2023
@skjnldsv skjnldsv removed this from the Nextcloud 27.0.2 milestone Aug 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants