Update add_user_to_service endoint to only handle new data format

Updated the add_user_to_service endpoint to only handle data in the
'new' format (`{"permissions": [...]}` instead of `[permission_1, permission_2]`)
since Admin has been updated to send data the new way.

This change means that we no longer need the Marshmallow Permission
schema, so it can be deleted.
This commit is contained in:
Katie Smith
2019-03-12 19:07:12 +00:00
parent 31ddd36e2c
commit b0d3bd9046
3 changed files with 22 additions and 106 deletions

View File

@@ -83,7 +83,7 @@ from app.errors import (
register_errors
)
from app.letters.utils import letter_print_day
from app.models import LETTER_TYPE, NOTIFICATION_CANCELLED, Service, EmailBranding, LetterBranding
from app.models import LETTER_TYPE, NOTIFICATION_CANCELLED, Permission, Service, EmailBranding, LetterBranding
from app.schema_validation import validate
from app.service import statistics
from app.service.service_data_retention_schema import (
@@ -101,11 +101,11 @@ from app.service.send_notification import send_one_off_notification
from app.schemas import (
service_schema,
api_key_schema,
permission_schema,
notification_with_template_schema,
notifications_filter_schema,
detailed_service_schema
)
from app.user.users_schema import post_set_permissions_schema
from app.utils import pagination_links
service_blueprint = Blueprint('service', __name__)
@@ -286,12 +286,13 @@ def add_user_to_service(service_id, user_id):
raise InvalidRequest(error, status_code=400)
data = request.get_json()
if 'permissions' in data:
user_permissions = data['permissions']
else:
user_permissions = data
validate(data, post_set_permissions_schema)
permissions = [
Permission(service_id=service_id, user_id=user_id, permission=p['permission'])
for p in data['permissions']
]
permissions = permission_schema.load(user_permissions, many=True).data
dao_add_user_to_service(service, user, permissions)
data = service_schema.dump(service).data
return jsonify(data=data), 201