-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
127 lines (106 loc) · 4.49 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
from flask import Flask, flash, render_template ,url_for ,request ,session
from resources.Function import authenticate_user
from resources.Function import create_user
from resources.Function import find_usertype
from resources.Function import find_user_email
from resources.Encryption import encrypt
from resources.Decryption import decrypt
import secrets
# @author Yasiru
# contact me: https://linktr.ee/yasiruchamuditha for more information.
#create secreat key
secret = secrets.token_urlsafe(32)
app = Flask(__name__)
app.secret_key = secret
#route for load index page
@app.route("/")
def index():
return render_template('Home.html')
#route for load home page
@app.route("/home")
def home():
return render_template('Home.html')
#route for load register page
@app.route("/register")
def register():
return render_template('Register.html')
#route for load login page
@app.route("/login")
def login():
return render_template('Login.html')
#route for load sendMessage page
@app.route("/sendmessage")
def sendMessage():
return render_template('SendMessage.html')
#route for login form action
@app.route("/LoginMethod", methods=['POST'])
def LoginMethod():
email = request.form.get('txtUSerEmail')
password = request.form.get('txtPassword')
if authenticate_user(email, password):
#check user role of email
userrole=find_usertype(email)
print('usertype checked in main body.',userrole)
if userrole is not None:
#decrypt message method
decrypted_Message = decrypt(userrole)
if decrypted_Message is not None:
flash('Decryption is successful!', 'success')
print("Decrypted Message in succesful in main body:", decrypted_Message)
# Pass the decrypted_Message to the template
return render_template('DisplayMessage.html', decrypted_Message=decrypted_Message)
else:
flash('Decryption failed.', 'error')
print("Decrypted Message in failed in main body:")
# Redirect to the HTML page to display the feedback message
return render_template('/Login.html')
else:
flash('Login failed. Invalid email or password.', 'error')
# Redirect to the HTML page to display the feedback message
return render_template('/Login.html')
else:
flash('Login failed. Invalid email or password.', 'error')
# Redirect to the HTML page to display the feedback message
return render_template('/Login.html')
#route for registration form action
@app.route("/RegisterMethod", methods=['POST'])
def SignUpMethod():
email = request.form.get('txtUSerEmail')
userrole = request.form.get('User_Role')
password = request.form.get('txtPassword')
cpassword = request.form.get('txtConfirm_Password')
if password == cpassword:
foundEmail = find_user_email(email)
if foundEmail is None:
if create_user(email, userrole, password):
flash('Registration successful! Please login.', 'success')
# Redirect to the HTML page to display the feedback message
return render_template('/Login.html')
else:
flash('Registration failed. Please try again later.', 'error')
# Redirect to the HTML page to display the feedback message
return render_template('/Register.html')
else:
flash('Registration failed. Already have Account under Email', 'error')
# Redirect to the HTML page to display the feedback message
return render_template('/Register.html')
else:
flash('Password and confirm password do not match. Please try again.', 'error')
# Redirect to the HTML to display the feedback message
return render_template('/Register.html')
#route for sendMessage form action
@app.route("/SendMessageMethod", methods=['POST'])
def MessageMethod():
message = request.form.get('textareaMessage').encode()
user_type = request.form.get('User_Role')
print(message)
print(user_type)
#Check userrole and send encrypt method
if encrypt(message,user_type):
flash('Message encrypted and saved.', 'success')
else:
flash('Message encryption failed. Please Try Again later.', 'error')
#Redirect to the HTML page to display the feedback message
return render_template('/SendMessage.html')
if __name__=="__main__":
app.run(debug=True)