Exemple #1
0
def login():

    # cut the page for authenticated users
    if current_user.is_authenticated:
        return redirect(url_for('index'))

    # Declare the login form
    form = LoginForm(request.form)

    # Flask message injected into the page, in case of any errors
    msg = None

    # check if both http method is POST and form is valid on submit
    if form.validate_on_submit():

        # assign form data to variables
        username = request.form.get('username', '', type=str)
        password = request.form.get('password', '', type=str)

        # filter User out of database through username
        user = User.get_by_username(username)

        if user:
            #if bc.check_password_hash(user.password, password):
            if user.password == password and user.is_admin:
                print("password matched")
                login_user(user)
                Database.insert(collection="login_log",
                                data={
                                    "user_name": username,
                                    "date_time":
                                    str(datetime.datetime.utcnow()),
                                    "ip": request.remote_addr
                                })
                return redirect(url_for('index'))
            else:
                msg = "Wrong password or not Admin. Please try again."
        else:
            msg = "Unknown user"

    return render_template('pages/auth-login.html', form=form, msg=msg)
Exemple #2
0
 def email_auth(self):
     print("Creating registration email")
     token = uuid.uuid4().hex
     links = [
         'http://ec2-3-19-30-128.us-east-2.compute.amazonaws.com/auth/verify_email/'
         + str(self.user_id) + '/' + token,
         'http://ec2-3-19-30-128.us-east-2.compute.amazonaws.com:5000/auth/verify_email/'
         + str(self.user_id) + '/' + token,
         'http://127.0.0.1:5000/auth/verify_email/' + str(self.user_id) +
         '/' + token
     ]
     Database.insert(collection='email_token',
                     data={
                         'user_id': self.user_id,
                         'email_token': token
                     })
     msg = Message('Verify Email',
                   sender='*****@*****.**',
                   recipients=[self.email])
     msg.html = render_template('pages/verify_email.html',
                                name=self.fname,
                                links=links)
     mail.send(msg)
Exemple #3
0
 def save_to_mongo(self):
     Database.insert(collection='users', data=self.json())
Exemple #4
0
 def save_to_mongo(self):
     Database.insert("baseball", self.json())
 def save_to_mongo(self):
     Database.insert(collection='blacklist_tokens', data=self.json())
Exemple #6
0
def login():
    """
    Login a new Admin user. SCTRCTLY FOR ADMIN UI
    return a root redirect for the given user clears session.\n
    method: GET, POST \n
    GET: Returns HTML page (VIEW) for user to enter information\n
    POST: API usage, acts a api to login user\n

    params should be in a FLASK FORM json format (Form data).\n\n


    Args:
        form_data: data retrived from Flask form from the frontend

    Returns:
        redirect: url to the login page if registration is a success.\n
        error: message to frontend if registration is a fail

    form_data = {
        username': type=str
        password': type=str 
    }
    \n\n
    """

    # cut the page for authenticated users
    if current_user.is_authenticated:
        return redirect(url_for('index'))

    # Declare the login form
    form = LoginForm(request.form)

    # Flask message injected into the page, in case of any errors
    msg = None

    # check if both http method is POST and form is valid on submit
    if form.validate_on_submit():

        # assign form data to variables
        username = request.form.get('username', '', type=str)
        password = request.form.get('password', '', type=str)

        # filter User out of database through username
        user = User.get_by_username(username)

        if user:
            #if bc.check_password_hash(user.password, password):
            if user.password == password and user.is_admin:
                print("password matched")
                login_user(user)
                Database.insert(collection="login_log",
                                data={
                                    "user_name": username,
                                    "date_time":
                                    str(datetime.datetime.utcnow()),
                                    "ip": request.remote_addr
                                })
                return redirect(url_for('index'))
            else:
                msg = "Wrong password or not Admin. Please try again."
        else:
            msg = "Unknown user"

    return render_template('pages/auth-login.html', form=form, msg=msg)
Exemple #7
0
 def save_to_database(self):
     Database.insert(table='wbs', data=self.json())
Exemple #8
0
 def save_to_mongo(self):
     Database.insert("roster", self.json())
Exemple #9
0
 def save_to_mongo(self):
     Database.insert(COLLECTION, self.json())
Exemple #10
0
 def save_to_mongo(self):
     Database.insert("users", self.json())
Exemple #11
0
 def save_to_mongo(self):
     print(self.json())
     Database.insert(collection = 'projects', data = self.json())
Exemple #12
0
 def save_to_mongo(self, collection: str, exclude=None):
     Database.insert(collection, self.json(exclude, date_to_string=False))