How to use the synapse.http.servlet.parse_json_object_from_request function in synapse

To help you get started, we’ve selected a few synapse examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github matrix-org / synapse / synapse / replication / http / login.py View on Github external
def _handle_request(self, request, user_id):
        content = parse_json_object_from_request(request)

        device_id = content["device_id"]
        initial_display_name = content["initial_display_name"]
        is_guest = content["is_guest"]

        device_id, access_token = yield self.registration_handler.register_device(
            user_id, device_id, initial_display_name, is_guest
        )

        return 200, {"device_id": device_id, "access_token": access_token}
github matrix-org / synapse / synapse / rest / client / v1 / room.py View on Github external
def on_PUT(self, request, room_id, event_type, state_key, txn_id=None):
        requester = yield self.auth.get_user_by_req(request)

        content = parse_json_object_from_request(request)

        event_dict = {
            "type": event_type,
            "content": content,
            "room_id": room_id,
            "sender": requester.user.to_string(),
        }

        if state_key is not None:
            event_dict["state_key"] = state_key

        if event_type == EventTypes.Member:
            membership = content.get("membership", None)
            event = yield self.room_member_handler.update_membership(
                requester,
                target=UserID.from_string(state_key),
github matrix-org / synapse / synapse / rest / client / v2_alpha / groups.py View on Github external
async def on_POST(self, request):
        await self.auth.get_user_by_req(request, allow_guest=True)

        content = parse_json_object_from_request(request)
        user_ids = content["user_ids"]

        result = await self.groups_handler.bulk_get_publicised_groups(user_ids)

        return 200, result
github matrix-org / synapse / synapse / replication / http / membership.py View on Github external
async def _handle_request(self, request, room_id, user_id):
        content = parse_json_object_from_request(request)

        remote_room_hosts = content["remote_room_hosts"]
        event_content = content["content"]

        requester = Requester.deserialize(self.store, content["requester"])

        if requester.user:
            request.authenticated_entity = requester.user.to_string()

        logger.info("remote_join: %s into room: %s", user_id, room_id)

        await self.federation_handler.do_invite_join(
            remote_room_hosts, room_id, user_id, event_content
        )

        return 200, {}
github matrix-org / synapse / synapse / rest / client / v2_alpha / room_keys.py View on Github external
"auth_data": {
                "public_key": "abcdefg",
                "signatures": {
                    "ed25519:something": "hijklmnop"
                }
            },
            "version": "42"
        }

        HTTP/1.1 200 OK
        Content-Type: application/json
        {}
        """
        requester = yield self.auth.get_user_by_req(request, allow_guest=False)
        user_id = requester.user.to_string()
        info = parse_json_object_from_request(request)

        if version is None:
            raise SynapseError(400, "No version specified to update", Codes.MISSING_PARAM)

        yield self.e2e_room_keys_handler.update_version(
            user_id, version, info
        )
        defer.returnValue((200, {}))
github matrix-org / synapse / synapse / rest / client / v1 / admin.py View on Github external
def on_POST(self, request):
        self._clear_old_nonces()

        if not self.hs.config.registration_shared_secret:
            raise SynapseError(400, "Shared secret registration is not enabled")

        body = parse_json_object_from_request(request)

        if "nonce" not in body:
            raise SynapseError(
                400, "nonce must be specified", errcode=Codes.BAD_JSON,
            )

        nonce = body["nonce"]

        if nonce not in self.nonces:
            raise SynapseError(
                400, "unrecognised nonce",
            )

        # Delete the nonce, so it can't be reused, even if it's invalid
        del self.nonces[nonce]
github matrix-org / synapse / synapse / rest / key / v2 / remote_key_resource.py View on Github external
def async_render_POST(self, request):
        content = parse_json_object_from_request(request)

        query = content["server_keys"]

        yield self.query_keys(request, query, query_remote_on_cache_miss=True)
github matrix-org / synapse / synapse / rest / client / v2_alpha / account_data.py View on Github external
async def on_PUT(self, request, user_id, room_id, account_data_type):
        requester = await self.auth.get_user_by_req(request)
        if user_id != requester.user.to_string():
            raise AuthError(403, "Cannot add account data for other users.")

        body = parse_json_object_from_request(request)

        if account_data_type == "m.fully_read":
            raise SynapseError(
                405,
                "Cannot set m.fully_read through this API."
                " Use /rooms/!roomId:server.name/read_markers",
            )

        max_id = await self.store.add_account_data_to_room(
            user_id, room_id, account_data_type, body
        )

        self.notifier.on_new_event("account_data_key", max_id, users=[user_id])

        return 200, {}
github matrix-org / synapse / synapse / rest / client / v2_alpha / groups.py View on Github external
async def on_PUT(self, request, group_id, role_id):
        requester = await self.auth.get_user_by_req(request)
        requester_user_id = requester.user.to_string()

        content = parse_json_object_from_request(request)
        resp = await self.groups_handler.update_group_role(
            group_id, requester_user_id, role_id=role_id, content=content
        )

        return 200, resp
github matrix-org / synapse / synapse / rest / admin / __init__.py View on Github external
def on_POST(self, request, room_id):
        requester = yield self.auth.get_user_by_req(request)
        yield assert_user_is_admin(self.auth, requester.user)

        content = parse_json_object_from_request(request)
        assert_params_in_dict(content, ["new_room_user_id"])
        new_room_user_id = content["new_room_user_id"]

        room_creator_requester = create_requester(new_room_user_id)

        message = content.get("message", self.DEFAULT_MESSAGE)
        room_name = content.get("room_name", "Content Violation Notification")

        info = yield self._room_creation_handler.create_room(
            room_creator_requester,
            config={
                "preset": "public_chat",
                "name": room_name,
                "power_level_content_override": {"users_default": -10},
            },
            ratelimit=False,