Merge pull request #3543 from alphagov/remove-code-supporting-old-permissions-form_fields

Revert support for old user permissions params
This commit is contained in:
Tom Byers
2020-08-05 15:51:28 +01:00
committed by GitHub
2 changed files with 16 additions and 101 deletions

View File

@@ -755,20 +755,6 @@ def filter_by_broadcast_permissions(valuelist):
return [entry for entry in valuelist if any(entry in role for role in broadcast_permissions)]
# Included to support both versions of how user permissions are handled in permissions forms
# Remove when changeover to new version (permissions_field) is complete
PermissionsAbstract = type("PermissionsAbstract", (StripWhitespaceForm,), {
permission: BooleanField(label) for permission, label in permissions
})
# Included to support both versions of how user permissions are handled in permissions forms
# Remove when changeover to new version (permissions_field) is complete
BroadcastPermissionsAbstract = type("BroadcastPermissionsAbstract", (StripWhitespaceForm,), {
permission: BooleanField(label) for permission, label in broadcast_permissions
})
class BasePermissionsForm(StripWhitespaceForm):
def __init__(self, all_template_folders=None, *args, **kwargs):
super().__init__(*args, **kwargs)
@@ -804,25 +790,9 @@ class BasePermissionsForm(StripWhitespaceForm):
}
)
# Modified to support both versions of how user permissions are handled in permissions forms
# Remove when changeover to new version (permissions_field) is complete
@property
def permissions(self):
permissions_field_data = set(self.permissions_field.data)
permissions_fields_data = {field.id for field in self.permissions_fields if field.data is True}
if len(permissions_field_data) == 0 and len(permissions_fields_data) != 0:
return permissions_fields_data
else:
return permissions_field_data
# Included to support both versions of how user permissions are handled in permissions forms
# Remove when changeover to new version (permissions_field) is complete
@property
def permissions_fields(self):
return (
getattr(self, permission) for permission, field in self.__dict__.items()
if isinstance(field, BooleanField)
)
return set(self.permissions_field.data)
@classmethod
def from_user(cls, user, service_id, **kwargs):
@@ -836,15 +806,11 @@ class BasePermissionsForm(StripWhitespaceForm):
)
# Included to support both versions of how user permissions are handled in permissions forms
# Remove when changeover to new version (permissions_field) is complete
class PermissionsForm(PermissionsAbstract, BasePermissionsForm):
class PermissionsForm(BasePermissionsForm):
pass
# Included to support both versions of how user permissions are handled in permissions forms
# Remove when changeover to new version (permissions_field) is complete
class BroadcastPermissionsForm(BroadcastPermissionsAbstract, BasePermissionsForm):
class BroadcastPermissionsForm(BasePermissionsForm):
permissions_field = govukCheckboxesField(
'Permissions',

View File

@@ -514,22 +514,6 @@ def test_should_not_show_page_for_non_team_member(
{},
set(),
),
( # should be able to handle permissions being sent as booleans, until changeover to a list is complete
{
'view_activity': 'y',
'send_messages': 'y',
'manage_templates': 'y',
'manage_service': 'y',
'manage_api_keys': 'y',
},
{
'view_activity',
'send_messages',
'manage_templates',
'manage_service',
'manage_api_keys',
}
),
])
def test_edit_user_permissions(
client_request,
@@ -600,20 +584,6 @@ def test_edit_user_permissions(
'view_activity',
}
),
( # should be able to handle permissions being sent as booleans, until changeover to a list is complete
{
'send_messages': 'y',
'manage_templates': 'y',
'manage_service': 'y',
'manage_api_keys': 'y',
},
{
'view_activity',
'send_messages',
'manage_service',
'manage_templates',
}
),
])
def test_edit_user_permissions_for_broadcast_service(
client_request,
@@ -858,10 +828,9 @@ def test_should_show_folder_permission_form_if_service_has_folder_permissions_en
assert len(folder_checkboxes) == 3
@pytest.mark.parametrize('email_address, gov_user, old_permissions', [
('test@example.gov.uk', True, False),
('test@example.com', False, False),
('test@example.gov.uk', True, True)
@pytest.mark.parametrize('email_address, gov_user', [
('test@example.gov.uk', True),
('test@example.com', False)
])
def test_invite_user(
client_request,
@@ -870,7 +839,6 @@ def test_invite_user(
sample_invite,
email_address,
gov_user,
old_permissions,
mock_get_template_folders,
mock_get_organisations,
):
@@ -880,25 +848,19 @@ def test_invite_user(
mocker.patch('app.models.user.InvitedUsers.client_method', return_value=[sample_invite])
mocker.patch('app.models.user.Users.client_method', return_value=[active_user_with_permissions])
mocker.patch('app.invite_api_client.create_invite', return_value=sample_invite)
data = {'email_address': email_address}
if old_permissions:
data['view_activity'] = 'y'
data['send_messages'] = 'y'
data['manage_templates'] = 'y'
data['manage_service'] = 'y'
data['manage_api_keys'] = 'y'
else:
data['permissions_field'] = [
'view_activity',
'send_messages',
'manage_templates',
'manage_service',
'manage_api_keys',
]
page = client_request.post(
'main.invite_user',
service_id=SERVICE_ONE_ID,
_data=data,
_data={
'email_address': email_address,
'permissions_field': [
'view_activity',
'send_messages',
'manage_templates',
'manage_service',
'manage_api_keys',
]
},
_follow_redirects=True,
)
assert page.h1.string.strip() == 'Team members'
@@ -1003,19 +965,6 @@ def test_invite_user_with_email_auth_service(
'view_activity',
},
),
( # should be able to handle permissions being sent as booleans, until changeover to a list is complete
{
'send_messages': 'y',
'manage_templates': 'y',
'manage_service': 'y',
},
{
'view_activity',
'send_messages',
'manage_templates',
'manage_service',
},
)
))
def test_invite_user_to_broadcast_service(
client_request,