Check presence state is a valid one

This commit is contained in:
Erik Johnston 2016-02-18 09:16:32 +00:00
parent ddca9c56fc
commit 114b929f8b
2 changed files with 6 additions and 1 deletions

View File

@ -32,7 +32,6 @@ class PresenceState(object):
OFFLINE = u"offline"
UNAVAILABLE = u"unavailable"
ONLINE = u"online"
FREE_FOR_CHAT = u"free_for_chat"
class JoinRules(object):

View File

@ -606,6 +606,12 @@ class PresenceHandler(BaseHandler):
status_msg = state.get("status_msg", None)
presence = state["presence"]
valid_presence = (
PresenceState.ONLINE, PresenceState.UNAVAILABLE, PresenceState.OFFLINE
)
if presence not in valid_presence:
raise SynapseError(400, "Invalid presence state")
user_id = target_user.to_string()
prev_state = yield self.current_state_for_user(user_id)