Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask, render_template, redirect, url_for, request, flash
- from flask_tryton import Tryton
- from flask_login import (LoginManager, login_required, logout_user, login_user,
- current_user)
- app = Flask(__name__)
- app.config['TRYTON_CONFIG'] = '/srv/tryton/5.8/.trytond.conf'
- app.config['TRYTON_DATABASE'] = 'tryton_fusion'
- app.config['SECRET_KEY'] = '7d441f27d441f27567d441f2b6134a'
- tryton = Tryton(app)
- login_manager = LoginManager()
- login_manager.login_view = 'login'
- login_manager.init_app(app)
- User = tryton.pool.get('res.user')
- WebUser = tryton.pool.get('web.user')
- class WebUser(WebUser):
- __name__ = 'web.user'
- @property
- def is_authenticated(self):
- return True
- @property
- def is_anonymous(self):
- return False
- @property
- def is_active(self):
- return True
- def get_id(self):
- return str(self.id)
- @login_manager.user_loader
- @tryton.transaction()
- def load_user(user_id):
- return WebUser(int(user_id))
- @tryton.default_context
- def default_context():
- return User.get_preferences(context_only=True)
- @app.route('/')
- def index():
- return render_template('index.html')
- @app.route('/profile')
- @login_required
- @tryton.transaction()
- def profile():
- print('current_user ' + str(current_user))
- # got error here when rendering template
- return render_template('profile.html', email=current_user.email)
- @app.route('/login')
- def login():
- return render_template('login.html')
- @app.route('/login', methods=['POST'])
- @tryton.transaction()
- def login_post():
- email = request.form.get('email')
- password = request.form.get('password')
- remember = True if request.form.get('remember') else False
- user = WebUser.authenticate(email, password)
- if not user:
- flash('Please check your login details and try again.')
- return redirect(url_for('login'))
- login_user(user, remember=remember, force=True)
- return redirect(url_for('profile'))
- @app.route('/signup')
- def signup():
- return render_template('signup.html')
- @app.route('/signup', methods=['POST'])
- @tryton.transaction()
- def signup_post():
- email = request.form.get('email')
- password = request.form.get('password')
- # check user with tryton web-user
- user = WebUser.authenticate(email, password)
- if user:
- flash('Email address already exists')
- return redirect(url_for('signup'))
- # create new user with web_user
- user = WebUser()
- user.email = email
- user.password = password
- user.save()
- return redirect(url_for('login'))
- @app.route('/logout')
- @login_required
- def logout():
- logout_user()
- return redirect(url_for('index'))
- if __name__ == '__main__':
- app.run(host='0.0.0.0')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement