def messages_menu(): username = current_user.username chats = db_session.query(UserMessage).filter( or_(UserMessage.receiver == username, UserMessage.sender == username)).all() chatters_list = [] for chat in chats: if username == chat.receiver: chatter = chat.sender else: chatter = chat.receiver if chatter not in chatters_list: chatters_list.append(chatter) last_messages = {} for chatter in chatters_list: last_message = db_session.query(UserMessage).filter( or_(UserMessage.receiver == chatter, UserMessage.sender == chatter)).order_by( UserMessage.date_send).first() last_messages[last_message.sender] = last_message.message return render_template('map_neigh/messages_menu.html', chats=chats, last_messages=last_messages, chatters=chatters_list)
def register(): if request.method == "POST": username = request.form.get("username") password = request.form.get("password") confirm = request.form.get("password2") email = request.form.get("email") district = request.form.get("district") address_id = request.form.get("id_address") username_check = db_session.query( User.username).filter_by(username=username).scalar() if username_check is None: if password == confirm: secure_password = generate_password_hash(password) newUser = User(username=username, password=secure_password, email=email, district=district, address_id=address_id) db_session.add(newUser) db_session.commit() flash("Zarejestrowano pomyślnie", "success") return redirect(url_for("index")) else: flash("Hasła różnią się od siebie", "danger") return render_template("map_neigh/register.html") else: flash("Wprowadzona nazwa użytkownika jest już zajęta", "danger") return render_template("map_neigh/register.html") return render_template('map_neigh/register.html')
def restore(): if request.method == 'POST': email = request.form.get('email') user = db_session.query(User).filter_by(email=email).scalar() if user is not None: if user.email == email: password = generate_password() secure_password = generate_password_hash(password) user.password = secure_password db_session.commit() print(password, secure_password) msg = Message('Zmiana hasła', sender='*****@*****.**', recipients=[user.email]) msg.body = 'Poprosiłeś o wysłanie Tobie nowego hasła, oto ono: ' + password + ' Jeżeli to nie Ty wysłałeś prośbę o nowe hasło, zignoruj ten e-mail' mail.send(msg) flash('Na podany e-mail wysłano nowe hasło', 'success') return redirect(url_for('login')) else: flash('Nieprawidłowy adres e-mail', 'danger') return redirect(url_for('restore')) else: flash('Nieprawidłowy adres e-mail', 'danger') return redirect(url_for('restore')) return render_template('map_neigh/restore_password.html')
def login(): if request.method == 'POST': username = request.form.get("username") password = request.form.get("password") user = db_session.query(User).filter_by(username=username).first() if not user or not check_password_hash(user.password, password): flash('Niepoprawny login i/lub hasło') return redirect(url_for('login')) flash('Zalogowano poprawnie', 'success') login_user(user) return redirect(url_for('index')) return render_template("map_neigh/login.html")
def get_messages(username): if current_user is None: flash('Najpierw musisz się zalogować') return redirect(url_for('.login')) messages = db_session.query(UserMessage).filter( or_( and_(UserMessage.sender == current_user.username, UserMessage.receiver == username), and_(UserMessage.sender == username, UserMessage.receiver == current_user.username))).all() return render_template('map_neigh/chat.html', messages=messages, username=username)
def load_user(username): return db_session.query(User).filter_by(username=username).first()
def profile_view(): users = db_session.query(User).all() return render_template('map_neigh/profile.html', users=users)