From e04ae3090e7c77ea8a5754f996e0bf97218de324 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Tue, 13 Jul 2021 12:12:48 +0200 Subject: [PATCH 01/17] Create 3278-enable_set_displayname-capabilities.md --- ...278-enable_set_displayname-capabilities.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 proposals/3278-enable_set_displayname-capabilities.md diff --git a/proposals/3278-enable_set_displayname-capabilities.md b/proposals/3278-enable_set_displayname-capabilities.md new file mode 100644 index 00000000000..0e32d87be17 --- /dev/null +++ b/proposals/3278-enable_set_displayname-capabilities.md @@ -0,0 +1,23 @@ +# MSC3278: Expose enable_set_displayname in capabilities response + + +Some home servers like synapse can be configured to enable_set_displayname: false. To enable clients to handle that gracefully in the UI this setting should be exposed. + +## Proposal + +The m.room_versions capability /_matrix/client/r0/capabilities endpoint could be decorated to provide more information on capabilities. +```javascript +{ + "capabilities": { + "m.enable_set_displayname": false, + "m.room_versions": {...}, + } +} +``` +As part of this MSC, a capability will be added that exposes the server setting: +m.enable_set_displayname +Client recommendations +When presenting profile settings, clients should use capabilities in order to display the correct UI. + +## Unstable prefix +Implementations won't actually be able to use m.enable_set_displayname until the MSC has finished the Final Comment Period. While the MSC is in review, implementations can use an unstable prefix (im.vector.enable_set_displayname) instead. From 0fd7c9435b54bc45c09ef61299f6270fe563a108 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Tue, 13 Jul 2021 14:24:36 +0200 Subject: [PATCH 02/17] Apply suggestions from code review Co-authored-by: Alexey Rusakov --- proposals/3278-enable_set_displayname-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3278-enable_set_displayname-capabilities.md b/proposals/3278-enable_set_displayname-capabilities.md index 0e32d87be17..bea1d40dea7 100644 --- a/proposals/3278-enable_set_displayname-capabilities.md +++ b/proposals/3278-enable_set_displayname-capabilities.md @@ -5,7 +5,7 @@ Some home servers like synapse can be configured to enable_set_displayname: fals ## Proposal -The m.room_versions capability /_matrix/client/r0/capabilities endpoint could be decorated to provide more information on capabilities. +The `/_matrix/client/r0/capabilities` endpoint could be decorated to provide more information on capabilities. ```javascript { "capabilities": { From c7117067a3e6bdb70afcad165a210cafb2f0f829 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Tue, 13 Jul 2021 14:25:43 +0200 Subject: [PATCH 03/17] Apply suggestions from code review Co-authored-by: Alexey Rusakov --- proposals/3278-enable_set_displayname-capabilities.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/proposals/3278-enable_set_displayname-capabilities.md b/proposals/3278-enable_set_displayname-capabilities.md index bea1d40dea7..b6d1271ddbf 100644 --- a/proposals/3278-enable_set_displayname-capabilities.md +++ b/proposals/3278-enable_set_displayname-capabilities.md @@ -15,8 +15,9 @@ The `/_matrix/client/r0/capabilities` endpoint could be decorated to provide mor } ``` As part of this MSC, a capability will be added that exposes the server setting: -m.enable_set_displayname -Client recommendations +`m.enable_set_displayname` + +## Client recommendations When presenting profile settings, clients should use capabilities in order to display the correct UI. ## Unstable prefix From 72919922da3276dba63a20e0dcbff526e68c1929 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Tue, 13 Jul 2021 19:17:59 +0200 Subject: [PATCH 04/17] Update and rename 3278-enable_set_displayname-capabilities.md to 3279-enable_set_displayname-capabilities.md --- ...bilities.md => 3279-enable_set_displayname-capabilities.md} | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename proposals/{3278-enable_set_displayname-capabilities.md => 3279-enable_set_displayname-capabilities.md} (88%) diff --git a/proposals/3278-enable_set_displayname-capabilities.md b/proposals/3279-enable_set_displayname-capabilities.md similarity index 88% rename from proposals/3278-enable_set_displayname-capabilities.md rename to proposals/3279-enable_set_displayname-capabilities.md index b6d1271ddbf..72e4c70ff69 100644 --- a/proposals/3278-enable_set_displayname-capabilities.md +++ b/proposals/3279-enable_set_displayname-capabilities.md @@ -1,4 +1,4 @@ -# MSC3278: Expose enable_set_displayname in capabilities response +# MSC3279: Expose enable_set_displayname in capabilities response Some home servers like synapse can be configured to enable_set_displayname: false. To enable clients to handle that gracefully in the UI this setting should be exposed. @@ -19,6 +19,7 @@ As part of this MSC, a capability will be added that exposes the server setting: ## Client recommendations When presenting profile settings, clients should use capabilities in order to display the correct UI. +If capability is not present the default is true. ## Unstable prefix Implementations won't actually be able to use m.enable_set_displayname until the MSC has finished the Final Comment Period. While the MSC is in review, implementations can use an unstable prefix (im.vector.enable_set_displayname) instead. From 9c8fec04cf29d2725206d1534282ace3e9e0e566 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Tue, 13 Jul 2021 19:32:52 +0200 Subject: [PATCH 05/17] Update and rename 3279-enable_set_displayname-capabilities.md to 3282-enable_set_displayname-capabilities.md --- ...abilities.md => 3282-enable_set_displayname-capabilities.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename proposals/{3279-enable_set_displayname-capabilities.md => 3282-enable_set_displayname-capabilities.md} (93%) diff --git a/proposals/3279-enable_set_displayname-capabilities.md b/proposals/3282-enable_set_displayname-capabilities.md similarity index 93% rename from proposals/3279-enable_set_displayname-capabilities.md rename to proposals/3282-enable_set_displayname-capabilities.md index 72e4c70ff69..8e775f396cb 100644 --- a/proposals/3279-enable_set_displayname-capabilities.md +++ b/proposals/3282-enable_set_displayname-capabilities.md @@ -1,4 +1,4 @@ -# MSC3279: Expose enable_set_displayname in capabilities response +# MSC3282: Expose enable_set_displayname in capabilities response Some home servers like synapse can be configured to enable_set_displayname: false. To enable clients to handle that gracefully in the UI this setting should be exposed. From 53ffb61e801d590f819d75b3c9fb84b11962acc2 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Tue, 13 Jul 2021 19:37:47 +0200 Subject: [PATCH 06/17] Update and rename 3282-enable_set_displayname-capabilities.md to 3283-enable_set_displayname-capabilities.md --- ...abilities.md => 3283-enable_set_displayname-capabilities.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename proposals/{3282-enable_set_displayname-capabilities.md => 3283-enable_set_displayname-capabilities.md} (93%) diff --git a/proposals/3282-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md similarity index 93% rename from proposals/3282-enable_set_displayname-capabilities.md rename to proposals/3283-enable_set_displayname-capabilities.md index 8e775f396cb..ad4b3f1309f 100644 --- a/proposals/3282-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -1,4 +1,4 @@ -# MSC3282: Expose enable_set_displayname in capabilities response +# MSC3283: Expose enable_set_displayname in capabilities response Some home servers like synapse can be configured to enable_set_displayname: false. To enable clients to handle that gracefully in the UI this setting should be exposed. From ab5ceb019b96962e17fdfa44a98512ee982bcba4 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Wed, 14 Jul 2021 15:55:05 +0200 Subject: [PATCH 07/17] Update proposals/3283-enable_set_displayname-capabilities.md Co-authored-by: Alexey Rusakov --- proposals/3283-enable_set_displayname-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index ad4b3f1309f..2773ba0b0af 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -9,7 +9,7 @@ The `/_matrix/client/r0/capabilities` endpoint could be decorated to provide mor ```javascript { "capabilities": { - "m.enable_set_displayname": false, + "m.set_displayname": { "enabled": false }, "m.room_versions": {...}, } } From d9fcd0e241bd6b35664c2234679f074daa52a67f Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Fri, 16 Jul 2021 10:57:59 +0200 Subject: [PATCH 08/17] Update proposals/3283-enable_set_displayname-capabilities.md Co-authored-by: Will Hunt --- proposals/3283-enable_set_displayname-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index 2773ba0b0af..b6af17de709 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -1,7 +1,7 @@ # MSC3283: Expose enable_set_displayname in capabilities response -Some home servers like synapse can be configured to enable_set_displayname: false. To enable clients to handle that gracefully in the UI this setting should be exposed. +Some home servers like Synapse can be configured to enable_set_displayname: false. To enable clients to handle that gracefully in the UI this setting should be exposed. ## Proposal From 0fa212ffcad1413bbb384d5ed25de023f2c20cc1 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Fri, 16 Jul 2021 10:58:14 +0200 Subject: [PATCH 09/17] Update proposals/3283-enable_set_displayname-capabilities.md Co-authored-by: Will Hunt --- proposals/3283-enable_set_displayname-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index b6af17de709..eba3b88a706 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -5,7 +5,7 @@ Some home servers like Synapse can be configured to enable_set_displayname: fals ## Proposal -The `/_matrix/client/r0/capabilities` endpoint could be decorated to provide more information on capabilities. +The `/_matrix/client/r0/capabilities` endpoint should be decorated to provide more information on capabilities. ```javascript { "capabilities": { From 9d3a2a48d4192711e1e461227394905bcc2331a4 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Thu, 22 Jul 2021 11:48:18 +0200 Subject: [PATCH 10/17] Update 3283-enable_set_displayname-capabilities.md --- ...283-enable_set_displayname-capabilities.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index eba3b88a706..5393d244e7d 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -1,7 +1,6 @@ -# MSC3283: Expose enable_set_displayname in capabilities response +# MSC3283: Expose enable_set_displayname, enable_set_avatar_url and enable_3pid_changes in capabilities response - -Some home servers like Synapse can be configured to enable_set_displayname: false. To enable clients to handle that gracefully in the UI this setting should be exposed. +Some home servers like [Synapse](https://github.com/matrix-org/synapse/blob/756fd513dfaebddd28bf783eafa95b4505ce8745/docs/sample_config.yaml#L1207) can be configured to enable_set_displayname: false, enable_set_avatar_url: false or enable_3pid_changes: false. To enable clients to handle that gracefully in the UI this setting should be exposed. ## Proposal @@ -10,16 +9,24 @@ The `/_matrix/client/r0/capabilities` endpoint should be decorated to provide mo { "capabilities": { "m.set_displayname": { "enabled": false }, + "m.set_avatar_url": { "enabled": false }, + "m.3pid_changes": { "enabled": false }, "m.room_versions": {...}, } } ``` -As part of this MSC, a capability will be added that exposes the server setting: -`m.enable_set_displayname` +As part of this MSC, a capability for each setting will be added that exposes the server setting: +`m.set_displayname`, +`m.set_avatar_url`and +`m.3pid_changes` ## Client recommendations When presenting profile settings, clients should use capabilities in order to display the correct UI. + If capability is not present the default is true. ## Unstable prefix -Implementations won't actually be able to use m.enable_set_displayname until the MSC has finished the Final Comment Period. While the MSC is in review, implementations can use an unstable prefix (im.vector.enable_set_displayname) instead. +Implementations won't actually be able to use m.set_displayname, m.set_avatar_url or m.3pid_changes until the MSC has finished the Final Comment Period. While the MSC is in review, implementations can use an unstable prefix (e.g. im.vector.set_displayname) instead. + + + From c48cb3cee163476fce6b5b19d66c5d56de98c838 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Mon, 9 Aug 2021 11:27:05 +0200 Subject: [PATCH 11/17] Update 3283-enable_set_displayname-capabilities.md --- ...283-enable_set_displayname-capabilities.md | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index 5393d244e7d..3a6430576ff 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -1,6 +1,8 @@ # MSC3283: Expose enable_set_displayname, enable_set_avatar_url and enable_3pid_changes in capabilities response -Some home servers like [Synapse](https://github.com/matrix-org/synapse/blob/756fd513dfaebddd28bf783eafa95b4505ce8745/docs/sample_config.yaml#L1207) can be configured to enable_set_displayname: false, enable_set_avatar_url: false or enable_3pid_changes: false. To enable clients to handle that gracefully in the UI this setting should be exposed. +Some home servers like [Synapse](https://github.com/matrix-org/synapse/blob/756fd513dfaebddd28bf783eafa95b4505ce8745/docs/sample_config.yaml#L1207) +can be configured to enable_set_displayname: false, enable_set_avatar_url: false or enable_3pid_changes: false. +To enable clients to handle that gracefully in the UI this setting should be exposed. ## Proposal @@ -16,9 +18,20 @@ The `/_matrix/client/r0/capabilities` endpoint should be decorated to provide mo } ``` As part of this MSC, a capability for each setting will be added that exposes the server setting: -`m.set_displayname`, -`m.set_avatar_url`and -`m.3pid_changes` +- `m.set_displayname` + +Whether users are allowed to change their displayname after it has been initially set. +Useful when provisioning users based on the contents of a third-party directory. + +- `m.set_avatar_url` + +Whether users are allowed to change their avatar after it has been initially set. +Useful when provisioning users based on the contents of a third-party directory. + +- `m.3pid_changes` + +Whether users can change the 3PIDs associated with their accounts +(email address and msisdn). ## Client recommendations When presenting profile settings, clients should use capabilities in order to display the correct UI. @@ -26,7 +39,8 @@ When presenting profile settings, clients should use capabilities in order to di If capability is not present the default is true. ## Unstable prefix -Implementations won't actually be able to use m.set_displayname, m.set_avatar_url or m.3pid_changes until the MSC has finished the Final Comment Period. While the MSC is in review, implementations can use an unstable prefix (e.g. im.vector.set_displayname) instead. - - +Implementations won't actually be able to use m.set_displayname, m.set_avatar_url or m.3pid_changes +until the MSC has finished the Final Comment Period. +While the MSC is in review, implementations can use an unstable prefix +(e.g. im.vector.set_displayname) instead. From 05c24f6dbdcaca3bbef6b6d96dd95163c78a5db0 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Mon, 9 Aug 2021 12:03:29 +0200 Subject: [PATCH 12/17] Update proposals/3283-enable_set_displayname-capabilities.md Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com> --- proposals/3283-enable_set_displayname-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index 3a6430576ff..c7a92377676 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -1,7 +1,7 @@ # MSC3283: Expose enable_set_displayname, enable_set_avatar_url and enable_3pid_changes in capabilities response Some home servers like [Synapse](https://github.com/matrix-org/synapse/blob/756fd513dfaebddd28bf783eafa95b4505ce8745/docs/sample_config.yaml#L1207) -can be configured to enable_set_displayname: false, enable_set_avatar_url: false or enable_3pid_changes: false. +can be configured to `enable_set_displayname: false`, `enable_set_avatar_url: false` or `enable_3pid_changes: false`. To enable clients to handle that gracefully in the UI this setting should be exposed. ## Proposal From af0911340fc389fad53703723ef82a024271708d Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Mon, 9 Aug 2021 12:03:36 +0200 Subject: [PATCH 13/17] Update proposals/3283-enable_set_displayname-capabilities.md Co-authored-by: Dirk Klimpel <5740567+dklimpel@users.noreply.github.com> --- proposals/3283-enable_set_displayname-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index c7a92377676..233bb9f873e 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -7,7 +7,7 @@ To enable clients to handle that gracefully in the UI this setting should be exp ## Proposal The `/_matrix/client/r0/capabilities` endpoint should be decorated to provide more information on capabilities. -```javascript +```jsonc { "capabilities": { "m.set_displayname": { "enabled": false }, From ad7c0173f82081cd68aa6cb5bf115a814bc1f8c6 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Wed, 8 Sep 2021 13:06:03 +0200 Subject: [PATCH 14/17] Update 3283-enable_set_displayname-capabilities.md --- proposals/3283-enable_set_displayname-capabilities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index 233bb9f873e..49366ec4510 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -36,7 +36,7 @@ Whether users can change the 3PIDs associated with their accounts ## Client recommendations When presenting profile settings, clients should use capabilities in order to display the correct UI. -If capability is not present the default is true. +Capability should always be present. ## Unstable prefix Implementations won't actually be able to use m.set_displayname, m.set_avatar_url or m.3pid_changes From 0368523e508cd277af1354eb2ff0e96d02bb4083 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Tue, 21 Sep 2021 13:44:02 +0200 Subject: [PATCH 15/17] Update 3283-enable_set_displayname-capabilities.md --- proposals/3283-enable_set_displayname-capabilities.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index 49366ec4510..addbc3e16f9 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -39,8 +39,5 @@ When presenting profile settings, clients should use capabilities in order to di Capability should always be present. ## Unstable prefix -Implementations won't actually be able to use m.set_displayname, m.set_avatar_url or m.3pid_changes -until the MSC has finished the Final Comment Period. -While the MSC is in review, implementations can use an unstable prefix -(e.g. im.vector.set_displayname) instead. +While this MSC is not considered stable, implementations should use `org.matrix.msc3283.` in place of `m.` throughout this proposal. From 057d341ee08c4dc038f13ea98d20fa838a377fb7 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Tue, 21 Sep 2021 13:46:07 +0200 Subject: [PATCH 16/17] Update 3283-enable_set_displayname-capabilities.md --- proposals/3283-enable_set_displayname-capabilities.md | 1 + 1 file changed, 1 insertion(+) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index addbc3e16f9..4f2ce9f3aa0 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -32,6 +32,7 @@ Useful when provisioning users based on the contents of a third-party directory. Whether users can change the 3PIDs associated with their accounts (email address and msisdn). +Useful when provisioning users based on the contents of a third-party directory. ## Client recommendations When presenting profile settings, clients should use capabilities in order to display the correct UI. From cad961984009d61415c6193aba7f47f764e3e4d3 Mon Sep 17 00:00:00 2001 From: Jonas Kress Date: Thu, 11 Nov 2021 11:01:21 +0100 Subject: [PATCH 17/17] Update 3283-enable_set_displayname-capabilities.md --- proposals/3283-enable_set_displayname-capabilities.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/proposals/3283-enable_set_displayname-capabilities.md b/proposals/3283-enable_set_displayname-capabilities.md index 4f2ce9f3aa0..e59746d8b5f 100644 --- a/proposals/3283-enable_set_displayname-capabilities.md +++ b/proposals/3283-enable_set_displayname-capabilities.md @@ -38,6 +38,8 @@ Useful when provisioning users based on the contents of a third-party directory. When presenting profile settings, clients should use capabilities in order to display the correct UI. Capability should always be present. +Servers should always send these capabilities. If they aren't (because the server does not support +a new enough spec version or for any other reason), clients should behave as if they were present and set to true. ## Unstable prefix