Exemplo n.º 1
0
def sign_out():
    """Sign out
        Signs out currently logged in user
    """
    hashed_token = request.headers.get('token')

    data = request.get_json()
    email = data['email']
    token = database_helper.get_token_from_email(email)
    url = '/sign_out'

    server_hash = sha256((token[0] + email + url).encode('utf-8')).hexdigest()
    print('SIGNOUT: server_hash is:', server_hash, ' and hashed_token is: ',
          hashed_token)
    print('signing out token: ', token[0])
    user = database_helper.get_email_from_token(token[0])
    result = database_helper.logout_user(token[0])
    if (result == True) and server_hash == hashed_token:
        print('sockets before sign out ', sockets)
        print('user[0] before sign out ', user[0])
        print('sockets[user[0]] before sign out ', sockets[user[0]])
        print('deleting: ', sockets[user[0]])
        del sockets[user[0]]
        push_websocket_active_users()

        res = jsonify({'success': True, 'message': 'Signed out!'})
        return res
    else:
        res = jsonify({'success': False, 'message': 'Something went wrong!'})
        return res
Exemplo n.º 2
0
def post_message():
    user = request.get_json()
    sender_token = user['token']
    receiver_email = user['email']
    message = user['message']
    sender_email = database_helper.get_email_from_token(sender_token)
    logged_in = database_helper.get_email_from_token(sender_token)
    if logged_in:
        user_exist = database_helper.get_email_from_email(receiver_email)
        if user_exist:
            database_helper.post_msg(sender_email, receiver_email, message)
            return {"success": True, "message": "Message posted"}, 200
        else:
            return {"success": False, "message": "User doesn't exist."}, 404
    else:
        return {"success": False, "message": "You are not signed in."}, 404
Exemplo n.º 3
0
def change_password():
    token = request.form["token"]
    old_password = request.form["old_password"]
    new_password = request.form["new_password"]

    # Check if online
    if database_helper.is_user_online(token) != True:
        return jsonify(success=False, message="You are not logged in")

    # get email from token
    email = database_helper.get_email_from_token(token)

    if email is None:
        return jsonify(success=False,
                       message="Can't find email matching token")

    # get and compare current password
    password = database_helper.get_password(email[0])
    if password is None:
        return jsonify(success=False,
                       message="Can't find password matching email")

    if password[0] != old_password:
        return jsonify(success=False, message="Wrong password entered")

    # set new password
    database_helper.set_password(email[0], new_password)

    return jsonify(success=True, message="Password successfully updated")
Exemplo n.º 4
0
def get_user_data_by_email():
    #user = request.get_json()
    #token = user['token']
    #email = user['email']
    token = request.headers["Authorization"]
    email = request.headers["email"]
    logged_in = database_helper.get_email_from_token(token)
    if logged_in:
        user_details = database_helper.get_user_data_by_email_helper(email)
        if not user_details:
            return {"success": False, "message": "No data found."}, 200
        else:
            return {
                "success": True,
                "message": "User messages retrieved.",
                "data": {
                    'email': user_details[0],
                    'firstname': user_details[1],
                    'familyname': user_details[2],
                    'gender': user_details[3],
                    'city': user_details[4],
                    'country': user_details[5]
                }
            }, 200
    else:
        return {"success": False, "message": "You are not signed in."}, 404
Exemplo n.º 5
0
def websocket():
    if request.environ.get('wsgi.websocket'):
        ws = request.environ['wsgi.websocket']
		
		# TODO: WebSockets should send in json format
		# id, data etc
		
        while True:
			msg = ws.receive()
			message = json.loads(msg)
			
			if message["id"] == "email":				
				if message["email"] in socket_list:
					socket_list[message["email"]].send(json.dumps(dict(id = "sign_out")))				
				socket_list[message["email"]] = ws
				
			elif message["id"] == "update_chart":
				token = message["token"]
				email = database_helper.get_email_from_token(token)

				# get user statistics
				sent_ = database_helper.get_num_messages_sent(email[0])
				received_ = database_helper.get_num_messages_received(email[0])
				online_ = database_helper.get_num_users_online()
				
				ws.send(json.dumps(dict(id = "update_chart", sent = sent_, received = received_, online = online_)))
Exemplo n.º 6
0
def sign_out():
    token = request.headers["Authorization"]
    if database_helper.get_email_from_token(token):
        database_helper.sign_out(token)
        return {"success": True, "message": "Successfully signed out."}, 200
    else:
        return {"success": False, "message": "You are not signed in."}, 404
Exemplo n.º 7
0
def change_password():
	token = request.form["token"]
	old_password = request.form["old_password"]
	new_password = request.form["new_password"]
	
	# Check if online
	if database_helper.is_user_online(token) != True:
		return jsonify(success = False, message = "You are not logged in")
	
	# get email from token
	email = database_helper.get_email_from_token(token)
	
	if email is None:
		return jsonify(success = False, message = "Can't find email matching token")
	
	# get and compare current password
	password = database_helper.get_password(email[0])
	if password is None:
		return jsonify(success = False, message = "Can't find password matching email")
	
	if password[0] != old_password:
		return jsonify(success = False, message = "Wrong password entered")
		
	# set new password
	database_helper.set_password(email[0], new_password)
	
	return jsonify(success = True, message = "Password successfully updated")
Exemplo n.º 8
0
def get_user_messages_by_token():
	token = request.form["token"]
	email = database_helper.get_email_from_token(token)

	if email is None:
		return jsonify(success = False, message = "Can't find email matching token")
		
	messages = database_helper.get_user_messages(email[0])
	return jsonify(success = True, message = "User messages successfully returned", data = messages)
Exemplo n.º 9
0
def get_user_messages_by_token():
	token = request.form["token"]
	email = database_helper.get_email_from_token(token)

	if email is None:
		return jsonify(success = False, message = "Can't find email matching token")
		
	messages = database_helper.get_user_messages(email[0])
	return jsonify(success = True, message = "User messages successfully returned", data = messages)
def Get_user_messages_by_token():
    token = request.headers.get('token')
    if token and database_helper.check_token(token):
        email = database_helper.get_email_from_token(token)
        result = database_helper.get_user_messages_by_email(email)
        if result:
            return json.dumps({"success": "true", "message": "User messages retrieved.", "data": result}), 200
        else:
            return json.dumps({"success": "false", "message": "Something went wrong!"}), 500
    else:
        return json.dumps({"success": "false", "message": "Something went wrong!"}), 400
def post_message():
    data = request.get_json()
    token = request.headers.get('token')
    if token and 'content' in data and 'email' not in data and database_helper.check_token(token):
        email = database_helper.get_email_from_token(token)
        writer = email
        result = database_helper.post_message(email, writer, data['content'])
        if result == True:
            return json.dumps({"success": "true", "message": "Message posted"}), 200
        else:
            return json.dumps({"success": "false", "message": "Something went wrong!"}), 500
    elif token and 'email' in data and 'content' in data and database_helper.check_token(token):
        writer = database_helper.get_email_from_token(token)
        result = database_helper.post_message(data['email'], writer, data['content'])
        if result == True:
            return json.dumps({"success": "true", "message": "Message posted"}), 200
        else:
            return json.dumps({"success": "false", "message": "Something went wrong!"}), 500
    else:
        return json.dumps({"success": "false", "message": "Missing field"}), 400
Exemplo n.º 12
0
def post_message():	
	token = request.form['token']		# from
	message = request.form['message']
	email = request.form['email']		# to

	# TODO: check if token is valid!!!	
	
	sender = database_helper.get_email_from_token(token)

	database_helper.add_message(sender[0], email, message)
	# TODO: ERROR CHECK!!
		
	return jsonify(success = True, message = "Message successfully posted")	
Exemplo n.º 13
0
def post_message():
    token = request.form['token']  # from
    message = request.form['message']
    email = request.form['email']  # to

    # Check if online
    if database_helper.is_user_online(token) != True:
        return jsonify(success=False, message="You are not logged in")

    sender = database_helper.get_email_from_token(token)

    database_helper.add_message(sender[0], email, message)

    return jsonify(success=True, message="Message successfully posted")
Exemplo n.º 14
0
def post_message():	
	token = request.form['token']		# from
	message = request.form['message']
	email = request.form['email']		# to

	# Check if online
	if database_helper.is_user_online(token) != True:
		return jsonify(success = False, message = "You are not logged in")	
	
	sender = database_helper.get_email_from_token(token)

	database_helper.add_message(sender[0], email, message)
		
	return jsonify(success = True, message = "Message successfully posted")	
Exemplo n.º 15
0
def change_psw():
    user = request.get_json()

    token = user['token']
    old_psw = user['old_psw']
    new_psw = user['new_psw']

    stored_old_password = database_helper.get_password_from_token(token)

    if stored_old_password == old_psw:
        email = database_helper.get_email_from_token(token)
        database_helper.change_psw(email, new_psw)
        return {"success": True, "message": "Password updated"}, 200
    else:
        return {"success": False, "message": "Wrong password"}, 404
def Change_password():
    data = request.get_json()
    token=request.headers.get('token')
    if token and 'oldPassword' in data and 'newPassword' in data and database_helper.check_token(token):
        email = database_helper.get_email_from_token(token)
        old_password = database_helper.get_old_password(email)
        if data['oldPassword'] == old_password and 5 <= len(data['newPassword']) <= 30 and data['newPassword']==data['repeatPassword']:
            result = database_helper.Change_password(token, data['newPassword'])
            if result == True:
                return json.dumps({"success": "true", "message": "Password changed!"}), 200
            else:
                return json.dumps({"success": "false", "message": "Something wxent wrong!"}), 500
        else:
            return json.dumps({"success": "false", "message": "Check again your password!"}), 400
    else:
        return json.dumps({"success": "false", "message": "Missing field!"}), 400
Exemplo n.º 17
0
def get_user_messages_by_token():
    token = request.headers["Authorization"]
    #user = request.get_json()
    #token = user['token']
    email = database_helper.get_email_from_token(token)
    if not email:
        return {"success": False, "message": "You are not signed in."}, 404
    else:
        user_messages = database_helper.get_messages_by_email_helper(email)
        if not user_messages:
            return {"success": False, "message": "No messages found."}, 404
        else:
            return {
                "success": True,
                "message": "User messages retrieved.",
                "data": user_messages
            }, 200
def check_websocket():
    if request.environ.get('wsgi.websocket'):
        web_socket = request.environ['wsgi.websocket']
        message = json.loads(web_socket.receive()) ##I want to check this message
        email = database_helper.get_email_from_token(message['token']) ##GET THE EMAIL SOMEHOW
        logged_in_users[email] = web_socket
        print("WSGI FOUND")
        while True:
            message = web_socket.receive()
            if message is not None:
                message = {'message': 'Successfully logged in'}
                web_socket.send(json.dumps(message))
                print("message received")
        try:
            del logged_in_users[email]
        except:
            pass
    return 'None'
Exemplo n.º 19
0
def get_user_data_by_token():
	token = request.form["token"]
	email = database_helper.get_email_from_token(token)
	
	if email is None:
		return jsonify(success = False, message = "Can't find email matching token")
		
	user = database_helper.get_user(email[0])
	if user is None:
		return jsonify(success = False, message = "Can't find user data")
	
	u = {}
	u['email'] = user[0]
	u['firstname'] = user[1]
	u['familyname'] = user[2]
	u['country'] = user[3]
	u['city'] = user[4]
	u['gender'] = user[5]
	
	return jsonify(success = True, message = "User data successfully returned", data = u)
Exemplo n.º 20
0
def get_user_data_by_token():
	token = request.form["token"]
	email = database_helper.get_email_from_token(token)
	
	if email is None:
		return jsonify(success = False, message = "Can't find email matching token")
		
	user = database_helper.get_user(email[0])
	if user is None:
		return jsonify(success = False, message = "Can't find user data")
	
	u = {}
	u['email'] = user[0]
	u['firstname'] = user[1]
	u['familyname'] = user[2]
	u['country'] = user[3]
	u['city'] = user[4]
	u['gender'] = user[5]
	
	return jsonify(success = True, message = "User data successfully returned", data = u)
Exemplo n.º 21
0
def get_user_data_by_token():
    token = request.headers["Authorization"]
    if token is not None:
        email = database_helper.get_email_from_token(token)
        if not email:
            return {"success": False, "message": "You are not signed in."}
        else:
            user_details = database_helper.get_user_data_by_email_helper(email)
            if not user_details:
                return {"success": False, "message": "No data found."}
            else:
                return {
                    "success": True,
                    "message": "User messages retrieved.",
                    "data": {
                        'email': user_details[0],
                        'firstname': user_details[1],
                        'familyname': user_details[2],
                        'gender': user_details[3],
                        'city': user_details[4],
                        'country': user_details[5]
                    }
                }