예제 #1
0
 def get(self, username=None):
     if username:
         users_resp = Users.get_by_username(username)
     else:
         users_resp = Users.get_all()
     if users_resp is not None:
         self.write(dumps(users_resp))
     else:
         raise tornado.web.HTTPError(404)
예제 #2
0
 def _check_password(self, username, password):
     user = Users.get_by_username(username, ['password', 'salt'])
     if not user:
         return False
     stored_pass = user['password']
     password_bytes = password.encode('utf-8')
     salt_bytes = user['salt']
     hashed_password = hashlib.sha512(
         password_bytes + salt_bytes).hexdigest()
     return stored_pass == hashed_password
예제 #3
0
    def open(self, username):
        print("WebSocket opened " + username)
        self.user = Users.get_by_username(username)

        # admin websocket connections get a uuid since an admin user
        # might have multiple admin devices open
        self.uuid = uuid.uuid4()

        # publish this event, handled in AdminManager
        self.pubsub.publish("admin:connected", admin_ws=self)

        # listen for 'frame:update_frame' events via websockets
        self.on('frame:update_frame', self._update_frame)
        # listen for 'frame:update_content' events via websockets
        self.on('frame:mirror_frame', self._mirror_frame)