Merge pull request #3001 from alphagov/remove-upload-letters-permission

Remove the upload letters permission
This commit is contained in:
Chris Hill-Scott
2020-10-23 14:27:48 +01:00
committed by GitHub
6 changed files with 12 additions and 24 deletions

View File

@@ -37,7 +37,6 @@ from app.dao.services_dao import (dao_add_user_to_service, dao_create_service,
from app.dao.users_dao import create_user_code, save_model_user
from app.models import (EMAIL_TYPE, INTERNATIONAL_SMS_TYPE, KEY_TYPE_NORMAL,
KEY_TYPE_TEAM, KEY_TYPE_TEST, LETTER_TYPE, SMS_TYPE,
UPLOAD_LETTERS,
ApiKey, InvitedUser, Job, Notification,
NotificationHistory, Organisation, Permission, Service,
ServicePermission, ServiceUser, Template,
@@ -484,16 +483,16 @@ def test_create_service_returns_service_with_default_permissions(notify_db_sessi
service = dao_fetch_service_by_id(service.id)
_assert_service_permissions(service.permissions, (
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INTERNATIONAL_LETTERS
))
@pytest.mark.parametrize("permission_to_remove, permissions_remaining", [
(SMS_TYPE, (
EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INTERNATIONAL_LETTERS
)),
(EMAIL_TYPE, (
SMS_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INTERNATIONAL_LETTERS
)),
])
def test_remove_permission_from_service_by_id_returns_service_with_correct_permissions(
@@ -525,14 +524,14 @@ def test_create_service_by_id_adding_and_removing_letter_returns_service_without
service = dao_fetch_service_by_id(service.id)
_assert_service_permissions(service.permissions, (
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INTERNATIONAL_LETTERS
))
dao_remove_service_permission(service_id=service.id, permission=LETTER_TYPE)
service = dao_fetch_service_by_id(service.id)
_assert_service_permissions(service.permissions, (
SMS_TYPE, EMAIL_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, EMAIL_TYPE, INTERNATIONAL_SMS_TYPE, INTERNATIONAL_LETTERS
))
@@ -669,7 +668,7 @@ def test_delete_service_and_associated_objects(notify_db_session):
user.organisations = [organisation]
assert ServicePermission.query.count() == len((
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
SMS_TYPE, EMAIL_TYPE, LETTER_TYPE, INTERNATIONAL_SMS_TYPE, INTERNATIONAL_LETTERS
))
delete_service_and_all_associated_db_objects(service)

View File

@@ -34,8 +34,6 @@ from app.models import (
INTERNATIONAL_SMS_TYPE,
INBOUND_SMS_TYPE,
NOTIFICATION_RETURNED_LETTER,
UPLOAD_LETTERS,
)
from tests import create_authorization_header
from tests.app.db import (
@@ -289,7 +287,7 @@ def test_get_service_list_has_default_permissions(admin_request, service_factory
set(
json['permissions']
) == {
EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, LETTER_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, LETTER_TYPE, INTERNATIONAL_LETTERS
}
for json in json_resp['data']
)
@@ -301,7 +299,7 @@ def test_get_service_by_id_has_default_service_permissions(admin_request, sample
assert set(
json_resp['data']['permissions']
) == {
EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, LETTER_TYPE, UPLOAD_LETTERS, INTERNATIONAL_LETTERS
EMAIL_TYPE, SMS_TYPE, INTERNATIONAL_SMS_TYPE, LETTER_TYPE, INTERNATIONAL_LETTERS
}

View File

@@ -4,23 +4,18 @@ import pytest
from freezegun import freeze_time
from app.dao.notifications_dao import get_notification_by_id
from app.models import EMAIL_TYPE, LETTER_TYPE, UPLOAD_LETTERS
from app.models import EMAIL_TYPE, LETTER_TYPE
from app.service.send_notification import send_pdf_letter_notification
from app.v2.errors import BadRequestError, TooManyRequestsError
from notifications_utils.s3 import S3ObjectNotFound
from tests.app.db import create_service
@pytest.mark.parametrize('permissions', [
[EMAIL_TYPE],
[UPLOAD_LETTERS],
])
def test_send_pdf_letter_notification_raises_error_if_service_does_not_have_permission(
notify_db_session,
fake_uuid,
permissions,
):
service = create_service(service_permissions=permissions)
service = create_service(service_permissions=[EMAIL_TYPE])
post_data = {'filename': 'valid.pdf', 'created_by': fake_uuid, 'file_id': fake_uuid, 'postage': 'first',
'recipient_address': 'Bugs%20Bunny%0A123%20Main%20Street%0ALooney%20Town'}