def hashPass(plainPass, username):
	#hash password through sha512 with 1 million rounds.
	#static salt of 20 random characters, dynamic salt of the username
	staticSalt = "r!6bCZ&2e7a28d6dfE0c"
	shaHasher = Hashing()
	h = shaHasher.hash_value(plainPass, salt=username+staticSalt)
	return h
    def create(self):
        
        try:
            json_packet = request.get_json(force=True)
            json_data = json_packet["data_packet"]

            if "id_token" in json_data:
                email = self.__validate_id_token(json_data["id_token"])
            elif "access_token" in json_data:
                email = self.__validate_access_token(json_data["access_token"])
            if email is None:
                return "Invalid Id Token", 400
            user = app.models.user.User.query.filter_by(email=email).first()
            if user is None:
                user = app.models.user.User(email=email, action_permissions={})
                db.session.add(user)
                db.session.commit()

            submission = Submission.query.filter(Submission.user_id == user.id, Submission.submission_id == int(json_data['submission_id'])).first()
            # to avoid doubled submission because of network issues
            if submission is None:
                submission = self.__make_submission(json_data, user)
                db.session.add(submission)
                db.session.flush()
                new_point = self.__make_point(json_data, submission)
                db.session.add(new_point)
                db.session.flush()

                if "image" in json_data:
                    new_picture = self.__make_picture(submission.id, new_point.id, user.id)
                    new_picture.filepath = self.__save_image(submission.id, new_point.id, json_data['image'])
                    db.session.add(new_picture)

                db.session.query(User).filter(User.id == user.id) \
                    .update({User.activity_points: User.activity_points + 1,
                             User.activity_points_total: User.activity_points_total + 1},
                            synchronize_session=False)
                db.session.commit()

                hashing = Hashing(GisApp)
                # json_data_dump = json.dumps(json_data)
                # json_data_hash = hashing.hash_value(json_data_dump, '')
                # json_data_hash = hashlib.sha256(json_data_dump)

            return Response(json.dumps({ "status" : "ok", "received_data" : "json_data_hash", "point" : str(new_point) }))
        except Exception as e:
            return Response(json.dumps({ "status" : "error", "error_message" : str(e), "trace" : traceback.format_exc() })), 500
示例#3
0
from flask import Flask, render_template, request, redirect, url_for
from flask import session, flash
from flask import jsonify
import os, sys
from functools import wraps
import MySQLdb
from flask.ext.hashing import Hashing
import socket, threading, time
from threading import Lock

#create app object
app = Flask(__name__)

#hashing lines from hello3
#bcrypt = Bcrypt(app)
hashgun = Hashing(app)
# config
app.secret_key = os.urandom(11)

# host and port for the socket
host = '0.0.0.0'
port = 10000

#Open db connection
db = MySQLdb.connect("localhost", "SGDAdmin", "password", "WEBAPP")

#prepare cursor object
cursor = db.cursor()

#execute SQL query
cursor.execute("SELECT VERSION()")
示例#4
0
import os

from flask.ext.script import Manager, Command
from flask.ext.hashing import Hashing

from stacktracker import app

try:
    input = raw_input
except NameError:
    pass
manager = Manager(app)
hashing = Hashing(app)


@manager.command
def initdb():
    """Initializes an empty application database"""
    from stacktracker import db
    db.create_all()


@manager.command
def dumpconfig():
    """Dumps the application's current config"""
    from pprint import pprint
    pprint(app.config)


@manager.command
def admin(email):