Merge pull request #3528 from alphagov/fix-set-broadcast-permission

Fix setting of broadcast permission
This commit is contained in:
Chris Hill-Scott
2020-07-17 10:40:26 +01:00
committed by GitHub
3 changed files with 64 additions and 36 deletions

View File

@@ -318,10 +318,7 @@ def service_set_broadcast_permission(service_id):
if form.validate_on_submit():
if form.enabled.data:
current_service.force_permission('broadcast', on=True)
current_service.force_permission('email', on=False)
current_service.force_permission('sms', on=False)
current_service.force_permission('letter', on=False)
current_service.force_broadcast_permission_on()
else:
current_service.force_permission('broadcast', on=False)

View File

@@ -99,6 +99,11 @@ class Service(JSONModel):
permissions | permission if on else permissions - permission,
)
def force_broadcast_permission_on(self):
return self.update_permissions(
set(self.permissions) - {'email', 'sms', 'letter'} | {'broadcast'}
)
def update_permissions(self, permissions):
return self.update(permissions=list(permissions))