-
Notifications
You must be signed in to change notification settings - Fork 0
/
user_helper.py
115 lines (103 loc) · 4.5 KB
/
user_helper.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
from bottle import run, app, route, request, get, post, static_file, template, redirect,debug,validate, Bottle
import mail
import MySQLdb
from model.model import Users , helper
from session import app_others,logged_in_user, success_message, error_message, add_token
@app_others.get('/register')
def get_user_form():
token = add_token(helper.token)
my_top, my_bottom = 1 , 1
return template("user_registration_form", title="Maamariga", my_top = my_top,
cond = 0, my_bottom=my_bottom, token=token )
@app_others.post('/register')
def create_user():
username = request.forms.get('username').strip()
email = request.forms.get('email').strip()
password = request.forms.get('password').strip()
conpassword = request.forms.get('conpassword').strip()
token = request.forms.get('form_token').strip()
activation_code = helper.activation_hash()
user_session = request.environ.get('beaker.session')
if token == user_session["token"]:
del user_session["token"]
if password == conpassword:
try:
if Users.create(username, email, activation_code, password):
mymail.send_mail(email=email, name=username, activation_code = activation_code)
return template("registration", success_message = success_message,username=username)
else:
return template("user_registration_form", error_message = error_message, cond=1)
except MySQLdb.OperationalError ,e:
return template("user_registration_form", error_message = error_message,cond=1)
else:
return template("user_registration_form",error_message = error_message, cond=1)
@app_others.get('/user/edit')
def get_edit_user_form():
try:
user_details = logged_in_user()
if user_details:
email = user_details['email']
username = user_details['username']
token = add_token(helper.token)
return template("edit_user", my_top = 0, token=token, email=email, username=username)
else:
redirect("/login")
except MySQLdb.OperationalError ,e:
redirect("/login")
@app_others.post('/user/edit')
def update_user():
password = request.forms.get('password').strip()
conpassword = request.forms.get('conpassword').strip()
email = request.forms.get('email').strip()
user_details = logged_in_user()
token = request.forms.get('form_token').strip()
user_session = request.environ.get('beaker.session')
if token == user_session["token"]:
del user_session["token"]
if user_details["id"]:
if password is not '' and conpassword is not '' and password == conpassword:
try:
my_return = Users.update_password(user_details["id"] , password)
if my_return:
mymail.send_mail( email=user_details['email'], name=user_details['username'])
return template("registration",success_message = success_message, username=user_details["username"] )
else:
template("edit_user", my_top =0, error_message = error_message, email = user_details["email"], username=user_details["username"])
except MySQLdb.OperationalError , e:
return template("edit_user", my_top =0, error_message = error_message, email = user_details["email"], username=user_details["username"])
else:
redirect("/user/edit")
else:
redirect("/user/edit")
else:
redirect("/user/edit")
@app_others.get('/activation')
def activate_account():
activation_number = request.GET.get('activate')
try:
status = Users.activate(activation_number)
if status:
return template("activation_message", message ="Your account is now activated" )
else:
return template("activation_message", message = error_message )
except MySQLdb.OperationalError , e:
return template("activation_message", message = error_message )
@app_others.get('/reset/password')
def reset_password():
return template("reset_password", message="Please enter your email address")
@app_others.post('/reset/password')
def reset_member_password():
email = request.forms.get('email').strip()
if email:
try:
password = Users.reset_password(email)
print password
if password:
mymail.send_mail( email=email, password=password)
return template("registration",success_message = "A new password was sent to your box", username=email )
else:
return template("reset_password", message="Email not in our data store")
except MySQLdb.OperationalError , e:
return template("reset_password", message="Email not in our data store")
else:
return template("reset_password", message="Email not in our data store")