Allow toggle to enable/disable merging 3PIDs in profile

This commit is contained in:
Max Dor
2019-02-19 22:29:55 +01:00
parent 3d5fe63d01
commit f87df5204e
2 changed files with 39 additions and 18 deletions

View File

@@ -75,6 +75,14 @@ If you would like to change the behaviour, you can use the following configurati
```
3PIDs received from the backend are merged with the ones already linked to the account.
If you would like to change this behaviour, you can use the following configuration item:
```yaml
config:
policy:
all:
threepid:
update: false
```
## Integrate
To use this module with your back-end, you will need to implement a single REST endpoint:

View File

@@ -87,6 +87,7 @@ class RestAuthProvider(object):
else:
logger.info("Display name was not set because it was not given or policy restricted it")
if (self.config.updateThreepid):
if "three_pids" in profile:
logger.info("Handling 3PIDs")
for threepid in profile["three_pids"]:
@@ -106,6 +107,8 @@ class RestAuthProvider(object):
)
else:
logger.info("3PID is present, skipping")
else:
logger.info("3PIDs were not updated due to policy")
else:
logger.info("No profile data")
@@ -121,6 +124,7 @@ class RestAuthProvider(object):
regLower = True
setNameOnRegister = True
setNameOnLogin = False
updateThreepid = True
rest_config = _RestConfig()
rest_config.endpoint = config["endpoint"]
@@ -152,6 +156,15 @@ class RestAuthProvider(object):
# we don't care
pass
try:
rest_config.updateThreepid = config['policy']['all']['threepid']['update']
except TypeError:
# we don't care
pass
except KeyError:
# we don't care
pass
return rest_config
def _require_keys(config, required):