mirror of
https://github.com/GSA/notifications-api.git
synced 2026-07-24 18:09:41 -04:00
Merge pull request #3001 from alphagov/remove-upload-letters-permission
Remove the upload letters permission
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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'}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user