mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-06-03 21:10:24 -04:00
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:
@@ -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',
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user