@@ -51,10 +51,15 @@ def login_user():
5151 row = user_db .get_row ("Username" , username )
5252
5353 try :
54- if (row ["Username" ] == username and sha512_crypt .verify (password , row ["Password" ]) == True ):
54+ if (row ["Username" ] == username and sha512_crypt .verify (password , row ["Password" ]) == True and row [ "Type" ] != "Admin" ):
5555 user_db .close_db ()
56- flash (str ("Welcome {0}!" ).format (username ))
56+ flash (str ("Welcome User {0}!" ).format (username ))
5757 return render_template ("account.html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
58+ elif (row ["Username" ] == username and sha512_crypt .verify (password , row ["Password" ]) == True and row ["Type" ] == "Admin" ):
59+ users = user_db .get_table ()
60+ user_db .close_db ()
61+ flash (str ("Welcome Admin {0}!" ).format (username ))
62+ return render_template ("admin.html" , title = 'Admin Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ], users = users )
5863 else :
5964 user_db .close_db ()
6065 flash ("Login failed! Either the Username or Password was incorrect!" )
@@ -71,15 +76,34 @@ def del_user():
7176 username = request .form ['username' ]
7277 user_db .open_db ()
7378 row = user_db .get_row ("Username" , username )
79+
7480 if (row ["Type" ] == "Admin" ):
81+ users = user_db .get_table ()
7582 user_db .close_db ()
7683 flash ("Error! Can't delete an Admin account!" )
77- return render_template ("account .html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
84+ return render_template ("admin .html" , title = 'Admin Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ], users = users )
7885 else :
7986 user_db .drop_row ("Username" , username )
87+ users = user_db .get_table ()
8088 user_db .close_db ()
8189 flash (str ("User {0} successfully deleted!" ).format (username ))
8290 return render_template ("index.html" , title = 'Home' )
91+ else :
92+ username = request .args .get ('id' )
93+ user_db .open_db ()
94+ row = user_db .get_row ("Username" , username )
95+
96+ if (row ["Type" ] == "Admin" ):
97+ users = user_db .get_table ()
98+ user_db .close_db ()
99+ flash ("Error! Can't delete an Admin account!" )
100+ return render_template ("admin.html" , title = 'Admin Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ], users = users )
101+ else :
102+ user_db .drop_row ("Username" , username )
103+ users = user_db .get_table ()
104+ user_db .close_db ()
105+ flash (str ("User {0} successfully deleted!" ).format (username ))
106+ return render_template ("admin.html" , title = 'Admin Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ], users = users )
83107
84108@app .route ('/change_password' , methods = ['POST' , 'GET' ])
85109def change_password ():
@@ -88,14 +112,20 @@ def change_password():
88112 password = request .form ['password' ]
89113 new_password = request .form ['new_password' ]
90114 user_db .open_db ()
115+ users = user_db .get_table ()
91116 row = user_db .get_row ("Username" , username )
92117
93118 try :
94- if (row != None and row ["Username" ] == username and sha512_crypt .verify (password , row ["Password" ]) == True ):
119+ if (row != None and row ["Username" ] == username and sha512_crypt .verify (password , row ["Password" ]) == True and row [ "Type" ] != "Admin" ):
95120 user_db .update_row ("Password" , sha512_crypt .hash (new_password ), "Username" , username )
96121 user_db .close_db ()
97122 flash ("Password changed successfully!" )
98123 return render_template ("account.html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
124+ elif (row != None and row ["Username" ] == username and sha512_crypt .verify (password , row ["Password" ]) == True and row ["Type" ] == "Admin" ):
125+ user_db .update_row ("Password" , sha512_crypt .hash (new_password ), "Username" , username )
126+ user_db .close_db ()
127+ flash ("Password changed successfully!" )
128+ return render_template ("admin.html" , title = 'Admin Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ], users = users )
99129 else :
100130 user_db .close_db ()
101131 flash ("Password change failed! The current password provided is incorrect!" )
@@ -112,12 +142,19 @@ def change_username():
112142 new_username = request .form ['new_username' ]
113143 user_db .open_db ()
114144
115- if (user_db .get_row ("Username" , new_username ) == None ):
145+ if (user_db .get_row ("Username" , new_username ) == None and user_db . get_row ( "Username" , username )[ "Type" ] != "Admin" ):
116146 user_db .update_row ("Username" , new_username , "Username" , username )
117147 row = user_db .get_row ("Username" , new_username )
118148 user_db .close_db ()
119149 flash ("Username changed successfully!" )
120150 return render_template ("account.html" , title = 'Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ])
151+ elif (user_db .get_row ("Username" , new_username ) == None and user_db .get_row ("Username" , username )["Type" ] == "Admin" ):
152+ user_db .update_row ("Username" , new_username , "Username" , username )
153+ row = user_db .get_row ("Username" , new_username )
154+ users = user_db .get_table ()
155+ user_db .close_db ()
156+ flash ("Username changed successfully!" )
157+ return render_template ("admin.html" , title = 'Admin Account' , email = row ["Email" ], username = row ["Username" ], type = row ["Type" ], users = users )
121158 else :
122159 row = user_db .get_row ("Username" , username )
123160 user_db .close_db ()
0 commit comments