Exemplo n.º 1
0
def login(username, password=None):
    """
    Login to email account from which emails have to be retrieved
    :param username: email address for gmail account to be used
    :param password: password for gmail account associated with username
    """

    global _username
    _username = username
    validate_email(username)

    if password:
        connect_email_account(username, password)
Exemplo n.º 2
0
def login(username, password=None):
    """
    Login to email account from which emails have to be retrieved
    :param username: email address for gmail account to be used
    :param password: password for gmail account associated with username
    """

    global _username
    _username = username
    validate_email(username)

    if password:
        connect_email_account(username, password)
Exemplo n.º 3
0
    def post(self):
        auth_header = request.headers.get('Authorization')
        if auth_header is None:
            response = {
                'message': 'No token provided. Please provide a valid token.'}
            return make_response(jsonify(response)), 401
        access_token = auth_header.split(" ")[1]
        if access_token:
            #register user
            email = request.data['email'].strip()
            new_password = request.data['new_password'].strip()
            confirm_new_password = request.data['confirm_new_password'].strip()

            if not email or not new_password or not confirm_new_password:
                return make_response(jsonify({'message':'All fields are required'}))

            if validate.validate_email(email) == "False":
                return make_response(jsonify({'message':'Invalid email format'}))

            if validate.validate_password(new_password) == "False":
                return make_response(jsonify({'message': 'Password is short. Enter a password longer than 6 characters'}))

            if new_password != confirm_new_password:
                return make_response(jsonify({'message': 'Password mismatch'}))

            user = RecipeApp.query.filter_by(email=email).first()
            if user:
                user.password = Bcrypt().generate_password_hash(new_password).decode()
                user.save()
                response = {'message': 'Your password has been reset'}
                return make_response(jsonify(response)), 201
            return make_response(jsonify({'message': 'Email does not exist, try again'})), 401
        return make_response(jsonify({'message': 'Invalid token'})), 401
Exemplo n.º 4
0
    def post(self):
    # This method will edit the already existing password
        email = request.data['email'].strip()
        print(email)
        user = RecipeApp.query.filter_by(email=email).first()
        if not email:
            return make_response(jsonify({'message': 'Please input the email'})), 412

        if validate.validate_email(email) == "False":
                return make_response(jsonify({'message':'Invalid email format'})),401
        if not user:
            return make_response(jsonify({'message': 'User does not exist!'})), 404
        try:
            access_token = jwt.encode({'id': user.user_id, 'expiry_time': str(datetime.datetime.utcnow() +
            datetime.timedelta(minutes=30))},
            os.getenv('SECRET', '$#%^%$^%@@@@@56634@@@'))
            print(access_token)
            subject = "Yummy Recipes Reset Password"
            recipients.append(email)
            msg = Message(subject, sender="Admin", recipients=recipients)
            styles = "background-color:blue; color:white; padding: 5px 10px; border-radius:3px; text-decoration: none;"
            msg.html = f"Click the link to reset password:\n \n<h3><a href='http://localhost:3000/resetpassword?tk={access_token.decode()}' style='{styles}'>Reset Password</a></h3>"
            print(msg.html)
            with app.app_context():
                
                mail.send(msg)
            return make_response(jsonify({'message': 'Password Reset link sent successfully to '+email+''})), 201
        except Exception as e:
            return make_response(jsonify({'message': 'Invalid request sent.'})), 400
Exemplo n.º 5
0
def register():
    email = str(request.form['email'])
    username = str(request.form['username'])
    password = str(request.form['password'])
    password_verify = str(request.form['password-verify'])
    errors = False

    if password != password_verify:
        flash('passwords don\'t match', 'register')
        errors = True
    if User.query.filter_by(username=username).first():
        flash('sorry, that username is taken', 'register')
        errors = True
    if User.query.filter_by(email=email).first():
        flash('there is already an account with that email address',
              'register')
        errors = True
    if not validate_email(email):
        flash('not a valid email address')
        errors = True
    if not validate_username(username):
        flash('username must only contain letters, numbers, and underscore')
        errors = True
    if not errors:
        new_user = User(username=username, password=password, email=email)
        db.session.add(new_user)
        db.session.commit()
        flash('your account has been created successfully; please login',
              'login')

    return redirect(url_for('index'))
Exemplo n.º 6
0
 def test_email_at(self):
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('@emptyname.com'))
     self.assertFalse(validate_email('bare.string'))
     self.assertFalse(validate_email('emptydomain@'))
     self.assertFalse(validate_email('double@[email protected]'))
     self.assertFalse(validate_email('@'))
     self.assertFalse(validate_email(''))
Exemplo n.º 7
0
 def test_user_quoted(self):
     self.assertTrue(validate_email('user"!!!"@ya.ru'))
     self.assertTrue(validate_email('user"hi!"and"hi:"@ya.ru'))
     self.assertTrue(validate_email('user","@ya.ru'))
     self.assertFalse(validate_email('hel!,:lo"test"@ya.ru'))
     self.assertFalse(validate_email('[email protected]'))
     self.assertFalse(validate_email('hell,[email protected]'))
     self.assertFalse(validate_email('hel:[email protected]'))
     self.assertFalse(validate_email('even"quotes!"yeap:@ya.ru'))
Exemplo n.º 8
0
 def test_user_chars(self):
     self.assertTrue(validate_email('"test.hello"*****@*****.**'))
     self.assertTrue(validate_email('"hello"@mail.com'))
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('us#$*[email protected]'))
     self.assertFalse(validate_email('hello)(&@mail.com'))
     self.assertFalse(validate_email('e!,:[email protected]'))
Exemplo n.º 9
0
 def test_domain_letters(self):
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('test@super_mail.com'))
     self.assertTrue(validate_email('test@yan-dex_99.com'))
     self.assertTrue(validate_email('test@yeah-_-wierd.com'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('test@test.*'))
     self.assertFalse(validate_email('test@t$#%^&()st.*'))
Exemplo n.º 10
0
 def test_user_chars(self):
     self.assertTrue(validate_email('"test.hello"*****@*****.**'))
     self.assertTrue(validate_email('"hello"@mail.com'))
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('us#$*[email protected]'))
     self.assertFalse(validate_email('hello)(&@mail.com'))
     self.assertFalse(validate_email('e!,:[email protected]'))
Exemplo n.º 11
0
 def test_domain_letters(self):
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('test@super_mail.com'))
     self.assertTrue(validate_email('test@yan-dex_99.com'))
     self.assertTrue(validate_email('test@yeah-_-wierd.com'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('test@test.*'))
     self.assertFalse(validate_email('test@t$#%^&()st.*'))
Exemplo n.º 12
0
 def test_user_quoted(self):
     self.assertTrue(validate_email('user"!!!"@ya.ru'))
     self.assertTrue(validate_email('user"hi!"and"hi:"@ya.ru'))
     self.assertTrue(validate_email('user","@ya.ru'))
     self.assertFalse(validate_email('hel!,:lo"test"@ya.ru'))
     self.assertFalse(validate_email('[email protected]'))
     self.assertFalse(validate_email('hell,[email protected]'))
     self.assertFalse(validate_email('hel:[email protected]'))
     self.assertFalse(validate_email('even"quotes!"yeap:@ya.ru'))
Exemplo n.º 13
0
 def test_email_at(self):
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('@emptyname.com'))
     self.assertFalse(validate_email('bare.string'))
     self.assertFalse(validate_email('emptydomain@'))
     self.assertFalse(validate_email('double@[email protected]'))
     self.assertFalse(validate_email('@'))
     self.assertFalse(validate_email(''))
Exemplo n.º 14
0
    def test_validate_email(self):
        input_data = ['*****@*****.**', 'test', '@', 'abc.com', 'a.b@com', '']
        expected_results = [True, False, False, False, False, False]

        for data, expected in zip(input_data, expected_results):
            result = validate.validate_email(data)
            print(f"validate_email ({data}) == {expected}?")
            self.assertEqual(expected, result)
Exemplo n.º 15
0
def validation_form(request):
    j = request.body.decode('utf-8')
    j = re.sub(r"{\s*(\w)", r'{"\1', j)
    j = re.sub(r",\s*(\w)", r',"\1', j)
    j = re.sub(r"(\w):", r'\1":', j)
    body = json.loads(j)
    email = body["email"]
    result = validate_email(email)
    response = "{ valid : '" + str(result) + "' }"
    return HttpResponse(response)
Exemplo n.º 16
0
 def test_user_dots(self):
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('*****@*****.**'))
Exemplo n.º 17
0
 def test_user_dots(self):
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('*****@*****.**'))
Exemplo n.º 18
0
def test_validate():
    print 'name T: evan', validate_name('evan')
    print 'name T: ev-an', validate_name('ev-an')
    print 'name F: e123', validate_name('e123')
    print
    print 'address T: 1500 main st', validate_address('1500 main st')
    print 'address T: 1500 7th ave', validate_address('1500 7th ave')
    print 'address F: main st', validate_address('main st')
    print
    print 'city T: eugene', validate_city('eugene')
    print 'city T: new york', validate_city('new york')
    print 'city F: 111', validate_city('111')
    print
    print 'state T: Oregon', validate_state('Oregon')
    print 'state T: OR', validate_state('OR')
    print 'state T: New Mexico', validate_state('New Mexico')
    print 'state F: ore-gon', validate_state('ore-gon')
    print 'state F: or12', validate_state('or12')
    print
    print 'zip T: 00000', validate_zip('00000')
    print 'zip T: 00000-1111', validate_zip('00000-1111')
    print 'zip F: 0', validate_zip('0')
    print 'zip F: 00001111', validate_zip('00001111')
    print 'zip F: 00000-111', validate_zip('00000-111')
    print 'zip F: 00000-11111', validate_zip('00000-11111')
    print
    print 'email T: [email protected]', validate_email('*****@*****.**')
    print 'email F: a@b', validate_email('a@b')
    print 'email F: a@b.', validate_email('a@b.')
    print 'email F: [email protected]', validate_email('[email protected]')
    print 'email F: @b.c', validate_email('@b.c')
    print 'email F: b.c', validate_email('b.c')
    print 'email F: \@b.c', validate_email('\@b.c')
    print 'email F: a@\.c', validate_email('a@\.c')
    print 'email F: a@b.\\', validate_email('a@b.\\')
    print
    print 'phone F: 5415554444x6666', validate_phone('5415554444x6666')
    print 'phone T: 541-555-4444', validate_phone('541-555-4444')
    print 'phone T: (541) 555-4444', validate_phone('(541) 555-4444')
    print 'phone F: 541555444', validate_phone('541555444')
Exemplo n.º 19
0
 def post(self):
     user = RecipeApp.query.filter_by(email=request.data['email']).first()
     if user:
         return make_response(jsonify({'message': 'User already exists. Please login or use another email.'})), 409
     try:
         # Register the user
         email = request.data['email']
         username = request.data['username']
         password =  request.data['password']
         confirm_password =  request.data['confirm_password']
         if not email or not password or not confirm_password:
             return make_response(jsonify({'message': 'All fields are required'})), 400   
         if validate.validate_email(email) != "True":
             return make_response(jsonify({'message': 'Invalid email! A valid email should in this format [email protected]' })), 401
         if validate.validate_password(password) != "True":
             return make_response(jsonify({'message': 'Password is short. Enter a password longer than 6 characters'})), 400
         if password != confirm_password:
             return make_response(jsonify({'message': 'Passwords do not match'})), 400
         else:
             user = RecipeApp(email=email, password=password, username=username)
             user.save()
             return make_response(jsonify({'message': 'You registered successfully.', 'username':username})), 201
     except Exception as e:
         return make_response(jsonify({'message': str(e)})), 400
Exemplo n.º 20
0
        #loop for user input till he enter valid
        while True:
            f_name = input("please enter your first name: ").strip()
            if validate.validate_f_name(f_name) == True:
                break
            else:
                print(validate.validate_f_name(f_name))
        while True:
            l_name = input("please enter your last name: ").strip()
            if validate.validate_l_name(l_name) == True:
                break
            else:
                print(validate.validate_l_name(l_name))
        while True:
            email = input("please enter your email: ").strip()
            if validate.validate_email(email) == True:
                break
            else:
                print("Invalid email address or email used before")
        while True:
            password = input("please enter your password: "******"please enter your confirmation password: ").strip()
            if validate.validate_conf_pass(conf_pass, password) == True:
                break
Exemplo n.º 21
0
 def test_user_quotes(self):
     self.assertTrue(validate_email('hello"there"@email.net'))
     self.assertTrue(validate_email('"quotes"@email.net'))
     self.assertTrue(validate_email('""""@nice.user'))
     self.assertFalse(validate_email('three"quo"tes"@m.net'))
Exemplo n.º 22
0
 def test_domain_length(self):
     self.assertFalse(validate_email('[email protected]_in_task'))
     self.assertFalse(validate_email('[email protected]'))
     self.assertTrue(validate_email('test@' + 's'*253 + '.ru'))
     self.assertFalse(validate_email('test@' + 's'*254 + '.ru'))
Exemplo n.º 23
0
 def test_username_length(self):
     self.assertTrue(validate_email('c' * 128 + '@mail.com'))
     self.assertFalse(validate_email('c' * 129 + '@mail.com'))
Exemplo n.º 24
0
 def test_domain_pattern(self):
     self.assertFalse(validate_email('[email protected]'))
     self.assertFalse(validate_email('[email protected]'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('*****@*****.**'))
Exemplo n.º 25
0
 def test_domain_length(self):
     self.assertFalse(validate_email('[email protected]_in_task'))
     self.assertFalse(validate_email('[email protected]'))
     self.assertTrue(validate_email('test@' + 's' * 253 + '.ru'))
     self.assertFalse(validate_email('test@' + 's' * 254 + '.ru'))
Exemplo n.º 26
0
 def test_domain_pattern(self):
     self.assertFalse(validate_email('[email protected]'))
     self.assertFalse(validate_email('[email protected]'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertFalse(validate_email('*****@*****.**'))
     self.assertTrue(validate_email('*****@*****.**'))
Exemplo n.º 27
0
 def test_username_length(self):
     self.assertTrue(validate_email('c'*128 + '@mail.com'))
     self.assertFalse(validate_email('c'*129 + '@mail.com'))
Exemplo n.º 28
0
# a module is basically a file containing a set of functions to include in your application.
# there are core python modules, modules you can install using the pip package manager (including django) as well as custom modules

#core modules
import datetime
#to import date from datetime
from datetime import date

#today = datetime.date.today()

today = date.today()

print(today)

import time
from time import time

timestamp = time()

print(timestamp)

#import custom module
import validate
from validate import validate_email

email = '*****@*****.**'

if validate_email(email):
    print('email is valid')
else:
    print('email is bad')
Exemplo n.º 29
0
 def test_user_quotes(self):
     self.assertTrue(validate_email('hello"there"@email.net'))
     self.assertTrue(validate_email('"quotes"@email.net'))
     self.assertTrue(validate_email('""""@nice.user'))
     self.assertFalse(validate_email('three"quo"tes"@m.net'))