47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
#!/usr/bin/python3
|
|
|
|
import sqlite3
|
|
import re
|
|
|
|
class Tools():
|
|
|
|
def __init__(self):
|
|
self.username = ''
|
|
|
|
#check code
|
|
def code_is_valid(self, code, db):
|
|
con = sqlite3.connect(db)
|
|
cur = con.cursor()
|
|
|
|
codes=[]
|
|
for row in cur.execute('SELECT * FROM codes WHERE valid = 1'):
|
|
codes.append(row[0])
|
|
return(bool(code in codes))
|
|
|
|
def mark_code_as_used(self, code, db):
|
|
con = sqlite3.connect(db)
|
|
cur = con.cursor()
|
|
|
|
cur.execute('''UPDATE codes SET valid=? WHERE code==?''',(0, code))
|
|
con.commit()
|
|
|
|
#form validation
|
|
|
|
def input_validation(self, e, ws=None):
|
|
if ws:
|
|
#accepts whitespaces
|
|
regex = r'^\w+( \w+)*$'
|
|
else:
|
|
regex = r'^\w+$'
|
|
return(bool(re.fullmatch(regex, e)))
|
|
|
|
def email_validation(self, e):
|
|
regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
|
|
return(bool(re.fullmatch(regex, e)))
|
|
|
|
def pwd_validation(self, e):
|
|
regex = r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!#%*?&]{8,18}$'
|
|
return(bool(re.fullmatch(regex, e)))
|
|
|
|
tools = Tools()
|