def edit_personal(error = None): contactNumber, emailAddress, comment = None, None, None try: #Get User Information try: memberInformation = join_member_informations(select_match_member(memberCourseProblemParameter = MemberCourseProblemParameter(memberId = session[SessionResources().const.MEMBER_ID])).subquery()).first() except Exception: #None Type Exception memberInformation = [] #Get Post if request.method == 'POST': password = request.form['password'] passwordConfirm = request.form['passwordConfirm'] #Get Updating Data contactNumber = request.form['contactNumber'] emailAddress = request.form['emailAddress'] comment = request.form['comment'] #Password Same if(password and passwordConfirm) and password == passwordConfirm: #Generate Password tripleDes = triple_des(OtherResources().const.TRIPLE_DES_KEY, mode = ECB, IV = "\0\0\0\0\0\0\0\0", pad = None, padmode = PAD_PKCS5) # ID, Password NO if password == memberInformation.password\ or password == memberInformation.memberId: error = get_message('pattenFailed') else: password = generate_password_hash(tripleDes.encrypt(str(password))) passwordConfirm = None #Update DB update_member_informations(select_match_member(memberCourseProblemParameter = MemberCourseProblemParameter(memberId = session[SessionResources().const.MEMBER_ID])), password, contactNumber, emailAddress, comment) # Commit Exception try: dao.commit() flash(get_message('updateSucceeded')) return redirect(url_for(RouteResources().const.SIGN_IN)) except Exception: dao.rollback() error = get_message('upateFailed') #Password Different elif not password and not passwordConfirm: #Update DB update_member_informations(members = select_match_member(memberCourseProblemParameter = MemberCourseProblemParameter(memberId = session[SessionResources().const.MEMBER_ID])), password = None, contactNumber = contactNumber, emailAddress = emailAddress, comment = comment) # Commit Exception try: dao.commit() flash(get_message('updateSucceeded')) return redirect(url_for(RouteResources().const.SIGN_IN)) except Exception: dao.rollback() error = get_message('upateFailed') else: error = get_message('wrongPassword') return render_template(HTMLResources().const.EDIT_PERSONAL_HTML, memberInformation = memberInformation, contactNumber = contactNumber, emailAddress = emailAddress, comment = comment, error = error) except Exception: return unknown_error()