Ejemplo n.º 1
0
    def post(self):
        username = None
        password = None
        app.logger.info(request.accept_mimetypes)
        if request_is_json():
            app.logger.info('Attempting to login using JSON')
            data = request.get_json()
            app.logger.info(request.data)
            for key, value in data.iteritems():
                print key + '-' + value
                if key == 'username':
                    username = value
                if key == 'password':
                    password = value
        elif request_is_form_urlencode():
            app.logger.info('Attempting to login using x-www-form-urlencoded')
            requestData = json.loads(request.form['data'])
            username = requestData['email']
            password = requestData['password']
        else:
            return {"meta": buildMeta(), "error": "Unable to process " + request.accept_mimetypes}


        # validate username and password
        if (username is not None and password is not None):
            user = User.query.filter_by(username=username).first()
            if (user is not None and user.verify_password(password)):
                app.logger.info('Login Successful')
                login_user(user)
                session['username'] = username;
                return {"meta": buildMeta(), "data": None}
            elif (config.DEBUG == True and username == config.ADMIN_USERNAME and password == config.ADMIN_PASSWORD):
                app.logger.info('Attempting to login as Root User')
                user = User.query.filter_by(username=username).first()
                if (user is None):
                    app.logger.info('No Admin User Found, Creating')
                    newUser = User(username=config.ADMIN_USERNAME, password=config.ADMIN_PASSWORD,
                                   email=config.ADMIN_EMAIL, first_name='Admin', last_name='Admin')
                    db_session.add(newUser)
                    db_session.commit()
                    login_user(newUser)
                    session['username'] = username;
                else:
                    login_user(user)
                    session['username'] = username;
            else:
                app.logger.info('Username or password incorrect')
                return {"meta": buildMeta(), "error": "Username or password incorrect", "data": None}
        else:
            app.logger.info('Please provide a username and password')
            return {"meta": buildMeta(), "error": "Please provide a username and password", "data": None}

        return {"meta": buildMeta()}
Ejemplo n.º 2
0
    def post(self, user_id=None):
        app.logger.info('Accessing User.post')

        username = ''
        password = ''
        confirm_password = ''
        email = ''
        first_name = ''
        last_name = ''
        role_id = ''

        if request_is_json():
            app.logger.info('Creating new user based upon JSON Request')
            print json.dumps(request.get_json())
            data = request.get_json()
            for key, value in data.iteritems():
                print key + '-' + str(value)
                if key == 'password':
                    password = value
                if key == 'confirm_password':
                    confirm_password = value
                elif key == 'email':
                    username = value
                    email = value
                elif key == 'first_name':
                    first_name = value
                elif key == 'last_name':
                    last_name = value
        elif request_is_form_urlencode():
            app.logger.info('Creating new user based upon other Request')
            requestData = json.loads(request.form['data'])
            username = requestData['email']
            email = requestData['email']
            last_name = requestData['last_name']
            first_name = requestData['first_name']
            confirm_password = requestData['confirm_password']
        else:
            return {"meta": buildMeta(), "error": "Unable to process " + request.accept_mimetypes}

        # TODO: PASSWORD and CONFIRM_PASSWORD comparison
        if email is None or password is None:
            return {"meta": buildMeta(), "error": "Email and Password is required", "data": None}

        if User.query.filter_by(username=username).first() is not None:
            return {"meta": buildMeta(), "error": "Username already exists", "data": None}

        newUser = User(username=username, password=password, email=email, first_name=first_name, last_name=last_name)

        db_session.add(newUser)
        db_session.commit()

        return {"meta": buildMeta()}
Ejemplo n.º 3
0
    def post(self, feedback_id=None):
        app.logger.info('Accessing Feedback.post')

        user = None
        user_id = None
        rating = None
        feedback = None

        if 'username' in session:
            user = User.query.filter_by(username=session['username']).first()

        if user is None:
            return {"meta": buildMeta(), "error": "No Session Found"}
        else:
            user_id = user.id;

        if request_is_json():
            app.logger.info('Creating new feedback based upon JSON Request')
            print json.dumps(request.get_json())
            data = request.get_json()
            if data is not None:
                for key, value in data.iteritems():
                    print key + '-' + str(value)
                    if key == 'rating':
                        rating = value
                    if key == 'feedback':
                        feedback = value
        elif request_is_form_urlencode():
            app.logger.info('Creating new user based upon other Request')
            requestData = json.loads(request.form['data'])
            rating = requestData['rating']
            feedback = requestData['feedback']
        else:
            return {"meta": buildMeta(), "error": "Unable to process " + request.accept_mimetypes}

        if rating is not None and feedback is not None:
            newFeedback = Feedback(user_id=user_id, rating=int(rating), feedback=feedback)

            db_session.add(newFeedback)
            db_session.commit()

            html_message = "<p>Rating: " + str(rating) + "</p><p>Feedback: " + feedback + "</p>"
            text_message = "Rating: " + str(rating) + "\r\nFeedback: " + feedback

            send_email('New Feedback',
                       ['"Robert Donovan" <*****@*****.**>', '"David Larrimore" <*****@*****.**'],
                       text_message, html_message)

            return {"meta": buildMeta(), 'data': newFeedback.serialize}, 201
        else:
            return {"meta": buildMeta(), 'error': 'No feedback was provided'}, 201
Ejemplo n.º 4
0
    def createNewUser(self, **kwargs):
        password = kwargs.get('new_password')
        email = kwargs.get('email')
        next_pay_date = kwargs.get('next_pay_date')
        pay_recurrance_flag = kwargs.get('pay_recurrance_flag')
        confirmed_at = kwargs.get('confirmed_at')
        active = kwargs.get('active')

        if email is None:
            email = testUtils.random_email_generator()

        if password is None:
            password = testUtils.random_password_generator()

        if isinstance(next_pay_date, datetime):
            next_pay_date = next_pay_date
        elif next_pay_date is True:
            next_pay_date = self.get_default_test_date()
        elif next_pay_date is False:
            next_pay_date = None
        else:
            next_pay_date = self.get_default_test_date()

        if pay_recurrance_flag is None:
            pay_recurrance_flag = "B"

        if isinstance(confirmed_at, datetime):
            confirmed_at = confirmed_at
        elif confirmed_at is True:
            confirmed_at = self.get_default_test_date()
        elif confirmed_at is False:
            confirmed_at = None
        else:
            confirmed_at = None

        newUser = User(username=email, password=password, email=email, first_name=self.get_default_test_name(), last_name=self.get_default_test_name(), next_pay_date=next_pay_date, pay_recurrance_flag = pay_recurrance_flag,  confirmed_at=confirmed_at, active=active)
        db_session.add(newUser)
        db_session.commit()
        return newUser
Ejemplo n.º 5
0
    def post(self, bill_id=None):
        app.logger.info('Accessing Bill.post')

        user = None

        user_id = None
        payee_id = None
        name = None
        description = None
        due_date = None
        billing_period = None
        total_due = None
        paid_flag = None
        paid_date = None
        check_number = None
        payment_type = None

        if 'username' in session:
            user = User.query.filter_by(username=session['username']).first()

        if user is None:
            return {"meta": buildMeta(), "error": "No Session Found"}

        if request_is_json():
            app.logger.info('Creating new user based upon JSON Request')
            print json.dumps(request.get_json())
            data = request.get_json()
            for key, value in data.iteritems():
                print key + '-' + str(value)
                if key == 'name':
                    name = value
                if key == 'description':
                    description = value
                elif key == 'due_date':
                    due_date = value
                elif key == 'billing_period':
                    billing_period = value
                elif key == 'total_due':
                    total_due = value
                elif key == 'paid_flag':
                    paid_flag = value
                elif key == 'paid_date':
                    paid_date = value
                elif key == 'check_number':
                    check_number = value
                elif key == 'payment_type':
                    payment_type = value
        elif request_is_form_urlencode():
            app.logger.info('Creating new user based upon other Request')
            requestData = json.loads(request.form['data'])
            name = requestData['name']
            description = requestData['description']
            due_date = requestData['due_date']
            billing_period = requestData['billing_period']
            total_due = requestData['total_due']
            paid_flag = requestData['paid_flag']
            paid_date = requestData['paid_date']
            check_number = requestData['check_number']
            payment_type = requestData['payment_type']
        else:
            return {"meta": buildMeta(), "error": "Unable to process " + request.accept_mimetypes}

        if Bill.query.filter_by(name=name, user_id=user_id).first() is not None:
            return {"meta": buildMeta(), "error": "Bill already exists"}

        newBill = Bill(user_id=user.id, name=name, description=description, due_date=due_date,
                       billing_period=billing_period, total_due=total_due, paid_flag=paid_flag, paid_date=paid_date,
                       payment_type=payment_type, check_number=check_number)

        db_session.add(newBill)
        db_session.commit()

        return {"meta": buildMeta(), 'data': newBill.serialize}, 201