示例#1
0
    def on_post(self,req,resp):
        """
        Handle POST requests.
        """
        username = req.media.get('username')
        password = req.media.get('password')

        # Check if parameters not empty
        if None in (username, password):
            raise falcon.HTTPBadRequest('Bad Request', 'Invalid Parameters')

        # Hash user password
        hashed = pbkdf2_sha256.encrypt(password, rounds=200000, salt_size=16)

        # Now create main user for account
        user = User(username=username, password=hashed)

        self.db_conn.add(user)

        # Attempt database changes commit
        try:
            # Create User
            self.db_conn.commit()

        except SQLAlchemyError as e:

            # Rollback Changes
            self.db_conn.rollback()

            # Send error
            logger.error(f'Database Error: (Code: {e.orig.args[0]} Message: {e.orig.args[1]})')
            raise falcon.HTTPInternalServerError('Internal Server Error', 'An error ocurred while communicating with the database.')

        resp.media = {'success': 'user_created'}
        resp.status = falcon.HTTP_201
示例#2
0
def register():
    form = registerForm()
    if g.user:
        return redirect(url_for("profile"))
    if form.validate_on_submit():
        user = User(
            email=form.email.data,
            firstName=form.firstName.data,
            lastName=form.lastName.data,
            # password = form.password.data,
            birthday=datetime.strptime(
                form.birthday_month.data + '%02d' % form.birthday_day.data +
                form.birthday_year.data, "%b%d%Y").date(),
            username=form.username.data)
        #logging.warning(str(user))
        user.put()
        sendConfirmEmail(user)

        session["username"] = user.username

        if not os.environ['SERVER_SOFTWARE'].startswith(
                'Development'):  #if production, cuz mail doesn't work on dev.
            flash("A confirmation link has been sent to your email address.")
            return redirect(url_for("home"))
        else:
            token = URLSafeTimedSerializer(app.config['SECRET_KEY']).dumps(
                user.key.urlsafe(), salt=app.config['SECURITY_PASSWORD_SALT'])
            confirm_url = url_for("confirmEmail", token=token, _external=True)
            return "<a href={0}>Confirm</a>".format(
                confirm_url)  #let developer do it manually

    return render_template("register.html", form=form)
示例#3
0
def register():
    """ Register """
    name = request.json.get('name')
    email = request.json.get('email')
    password = request.json.get('password')

    if name is None or password is None or email is None:
        return parse_json("missing arguments", False)
    if UserService.does_exist(email):
        return parse_json("existing user", False)

    user = User(name, email, password, [])
    user_id = UserService.create(user)
    token = UserService.generate_auth_token(str(user_id))

    return parse_json({'token': token}, True)
示例#4
0
    def setUp(self):
        os.environ['APPLICATION_ID'] = 'touch-login'
        datastore_file = '/dev/null'
        from google.appengine.api import apiproxy_stub_map, datastore_file_stub
        apiproxy_stub_map.apiproxy = apiproxy_stub_map.APIProxyStubMap()
        stub = datastore_file_stub.DatastoreFileStub('touch-login',
                                                     datastore_file)
        apiproxy_stub_map.apiproxy.RegisterStub('datastore_v3', stub)

        #If you think I know what that ^ does, you're wrong, I've got no idea.
        User(
            email="*****@*****.**",
            firstName="Vanya",
            lastName="Vegner",
            # password = form.password.data,
            username="******").put()

        flask_app.config['TESTING'] = True
        self.app = flask_app.test_client()
示例#5
0
 def __init__(self):
     self.data_service = get_data_service()
     self.default_user = User(
         name="Ari Propper",
         email="*****@*****.**",
         address="16, Rue Yafo, 94142 JERUSALEM, ISRAEL")