def permissions_import_json(request, ufp_id=0): upload_file = request.FILES.get('perms_upload') if upload_file: try: perms = json.loads(upload_file.read().decode('utf-8')) username = perms.get('username') if ufp_id: ufp = get_object_or_404(UserFieldPermissions, pk=ufp_id) if username == ufp.user.username: # Clear the old field permissions ufp.permissions.clear() else: message = 'The wrong user is defined in the imported file' messages.add_message(request, messages.ERROR, message) else: user = get_object_or_404(User, username=username) ufp = UserFieldPermissions(user=user) ufp.save() _add_permissions(request, ufp, perms) ufp_id = ufp.pk except Exception as e: message = 'Error in the import : %s' % e messages.add_message(request, messages.ERROR, message) else: message = 'Missing imported file' messages.add_message(request, messages.ERROR, message) return redirect( '/admin/rest_framework_fine_permissions/userfieldpermissions/%s' % ufp_id)