def change_pass(): cn = conection() cursor = cn.cursor() if request.method == 'POST': password_new = request.form["PASS"] sql_query = "UPDATE user SET PPass = %s WHERE UserID= %s" try: #print(username) #print(password) val = (session["id"]) cursor.execute(sql_query, ( password_new, val, )) cn.commit() except mysql.connector.Error as err: #caso algum erro aconteça com o insert. print(err) flash(f"Um erro inesperado aconteceu. Tente novamente.") cn.rollback() close_conec(cn, cursor) return redirect(url_for('user')) else: flash(f"Palavra-Passe alterada com sucesso.", "info") close_conec(cn, cursor) return redirect(url_for('user'))
def login(): if request.method == 'POST': print("entrei no POST") username = request.form['USER'] password = request.form['PASS'] session[ "user"] = username #se cheguei aqui, o utilizador existe, abro a session session.permanent_session_lifetime = True sql_query = "SELECT * FROM user WHERE UserName = %s" val = (username) cn = conection() #estableço conecção a nossa base dde dados cursor = cn.cursor() try: cursor.execute( sql_query, (val, ) ) #tive de adicionar uma ',' pois, nao processava os parametros. myresult = cursor.fetchone( ) #apenas preciso de uma linha, dai o fetchone// myresult[ 1] #tenho acesso ao unico parametro que me interessa do resultset #login_credential = myresult[2] #faço o catch da password para confirmar no futuro// #flash(f"----------------LOGIN_DATABASE: "+ login_credential) except (TypeError): session.clear() print("Dei a excepçao") flash(f"Utilizador inexistente! Tente novamente.", "info") close_conec(cn, cursor) return render_template('login.html') else: #p_desencriptada=decrypt(myresult[5],myresult[2],myresult[6]) #print("sou a passe depois de desencriptada: "+ p_desencriptada) if password != myresult[2]: session.clear() #limpar dados user flash(f"Palavra-passe errada. Por favor tente novamente.", "info") close_conec(cn, cursor) return render_template('login.html') elif myresult[3] == 1: print("---------SOU ADMIN--------") flash(f"Sessão iniciada com sucesso.", "info") close_conec(cn, cursor) return redirect( url_for('user')) #, flag=myresult[3], **request.args)) else: session["id"] = myresult[0] print(session["id"]) print("vim aqui") flash(f"Sessão iniciada com sucesso.", "info") close_conec(cn, cursor) return redirect( url_for('user')) #flag=myresult[3], **request.args))
def registo(): if request.method == 'POST': username = request.form["USER"] password = '******' if (username == ""): flash(f"Nome de utilizador inválido. Tente novamente.", "info") return redirect(url_for('pre_clean')) cn = conection() cursor = cn.cursor() try: sql_query = "SELECT * FROM user WHERE username = %s" val = (username) cursor.execute(sql_query, (val, )) myresult = cursor.fetchone( ) #apenas preciso de uma linha, dai o fetchone// myresult[ 1] #tenho acesso ao unico parametro que me interessa do resultset except (TypeError): print("Dei a excepçao") #antes de fazer o insert, irei passar-lhe então os valores da key e salt. #set_package=encrypt(password) #Neste caso, a excepção e útil para garantirmos que nao há 2 usernames iguais. try: sql_query = "INSERT INTO user (UserName, PPass) VALUES(%s,%s)" #print(username) #print(password) #val=(username,set_package.pass_encri, set_package.key, set_package.iv) val = (username, password) cursor.execute(sql_query, val) cn.commit() except mysql.connector.Error as err: #caso algum erro aconteça com o insert. print(err) flash(f"Um erro inesperado aconteceu. Tente novamente.") cn.rollback() close_conec(cn, cursor) return redirect(url_for('pre_clean')) else: flash(f"Utilizador registado com sucesso.", "info") close_conec(cn, cursor) return redirect(url_for('pre_clean')) else: print("vim aqui") flash(f"O username já existe. Tente novamente. ", "info") close_conec(cn, cursor) return redirect(url_for('pre_clean'))
def change_username(): cn = conection() cursor = cn.cursor() if request.method == 'POST': username = request.form["USER"] sql_query = "SELECT * FROM user WHERE username = %s" try: val = (username) cursor.execute(sql_query, (val, )) myresult = cursor.fetchone( ) #apenas preciso de uma linha, dai o fetchone// myresult[ 1] #tenho acesso ao unico parametro que me interessa do resultset except (TypeError): print("Dei a excepçao") #antes de fazer o insert, irei passar-lhe então os valores da key e salt. #set_package=encrypt(password) #Neste caso, a excepção e útil para garantirmos que nao há 2 usernames iguais. try: sql_query = "UPDATE user SET UserName = %s WHERE UserID= %s" #print(username) #print(password) val = (session["id"]) cursor.execute(sql_query, ( username, val, )) cn.commit() except mysql.connector.Error as err: #caso algum erro aconteça com o insert. print(err) flash(f"Um erro inesperado aconteceu. Tente novamente.") cn.rollback() close_conec(cn, cursor) return redirect(url_for('user')) else: flash( f"Username editado com sucesso. Para que as alterações tenham efeito, por favor volte a entrar.", "info") close_conec(cn, cursor) return redirect(url_for('user')) else: print("vim aqui") flash(f"O username já existe. Tente novamente. ", "info") close_conec(cn, cursor) return redirect(url_for('user'))
def listagem_sims(): cn = conection() cursor = cn.cursor() sql_stm = "SELECT * FROM sims where UserID = %s" val = session[ "id"] #aqui faco o retrieve do id do meu user, para dar uso a listagem das suas simulacoes #print(session["id"]) cursor.execute(sql_stm, (val, )) result_set = cursor.fetchall() #formei um dicionário com o nosso result set dic = {row[1]: row[3] for row in result_set} #print(dic) close_conec(cn, cursor) return render_template('sims.html', simulations=dic.items())
def pre_clean(): cn = conection() cursor = cn.cursor() sql_stm = "SELECT * FROM user" cursor.execute(sql_stm) result_set = cursor.fetchall() #formei um dicionário com o nosso result set dic = {row[1]: row[0] for row in result_set} #aqui elimino o admin da nossa lista, para que nao apareça na tabela. dic.pop("Administrador") #print(dic) close_conec(cn, cursor) return render_template('gestao_users.html', Utiliz=dic.items())
def delete(name): cn = conection() cursor = cn.cursor() try: sql_stm = "DELETE FROM sims WHERE Designacao= %s" val = (name) cursor.execute(sql_stm, (val, )) cn.commit() except mysql.connector.Error as err: print(err) flash(f"Aconteceu um erro inesperado, tente novamente.") cn.rollback() close_conec(cn, cursor) return redirect(url_for('listagem_sims')) else: print("CHEGUEI AO FIM") close_conec(cn, cursor) flash(f"Simulação eliminada com sucesso.", "info") return redirect(url_for('listagem_sims'))
def erase(id): cn = conection() cursor = cn.cursor() try: sql_stm = "DELETE FROM user WHERE UserID= %s" val = (id) cursor.execute(sql_stm, (val, )) cn.commit() except mysql.connector.Error as err: print(err) flash(f"Aconteceu um erro inesperado, tente novamente.") cn.rollback() close_conec(cn, cursor) return redirect(url_for('pre_clean')) else: print("CHEGUEI AO FIM") close_conec(cn, cursor) flash(f"Utilizador eliminado com sucesso.", "info") return redirect(url_for('pre_clean'))