equal
deleted
inserted
replaced
6 from flask import render_template, redirect, jsonify |
6 from flask import render_template, redirect, jsonify |
7 from flask_sqlalchemy import SQLAlchemy |
7 from flask_sqlalchemy import SQLAlchemy |
8 from werkzeug.security import gen_salt |
8 from werkzeug.security import gen_salt |
9 from flask_oauthlib.provider import OAuth2Provider |
9 from flask_oauthlib.provider import OAuth2Provider |
10 from settings.oauth_settings import OAuthSettings |
10 from settings.oauth_settings import OAuthSettings |
|
11 import uuid |
11 |
12 |
12 app = Flask(__name__, template_folder='templates') |
13 app = Flask(__name__, template_folder='templates') |
13 app.debug = True |
14 app.debug = True |
14 app.secret_key = 'secret' |
15 app.secret_key = 'secret' |
15 app.config.from_object(OAuthSettings) |
16 app.config.from_object(OAuthSettings) |
19 db = SQLAlchemy(app) |
20 db = SQLAlchemy(app) |
20 oauth = OAuth2Provider(app) |
21 oauth = OAuth2Provider(app) |
21 |
22 |
22 |
23 |
23 class User(db.Model): |
24 class User(db.Model): |
24 id = db.Column(db.Integer, primary_key=True) |
25 id = db.Column(db.String(256), primary_key=True) |
25 username = db.Column(db.String(40), unique=True) |
26 username = db.Column(db.String(40), unique=True) |
26 |
27 uai = db.Column(db.String(40), default="uaidefault") |
27 |
28 |
28 class Client(db.Model): |
29 class Client(db.Model): |
29 client_id = db.Column(db.String(40), primary_key=True) |
30 client_id = db.Column(db.String(40), primary_key=True) |
30 client_secret = db.Column(db.String(55), nullable=False) |
31 client_secret = db.Column(db.String(55), nullable=False) |
31 client_type = db.Column(db.String(12), nullable=False, default='public') |
32 client_type = db.Column(db.String(12), nullable=False, default='public') |
126 def home(): |
127 def home(): |
127 if request.method == 'POST': |
128 if request.method == 'POST': |
128 username = request.form.get('username') |
129 username = request.form.get('username') |
129 user = User.query.filter_by(username=username).first() |
130 user = User.query.filter_by(username=username).first() |
130 if not user: |
131 if not user: |
131 user = User(username=username) |
132 user = User(id=str(uuid.uuid4()), username=username) |
132 db.session.add(user) |
133 db.session.add(user) |
133 db.session.commit() |
134 db.session.commit() |
134 session['id'] = user.id |
135 session['id'] = user.id |
135 return redirect('/') |
136 return redirect('/') |
136 user = current_user() |
137 user = current_user() |
222 |
223 |
223 @app.route('/rest/user/InfoComplete') |
224 @app.route('/rest/user/InfoComplete') |
224 @oauth.require_oauth() |
225 @oauth.require_oauth() |
225 def user_info(): |
226 def user_info(): |
226 user = request.oauth.user |
227 user = request.oauth.user |
227 return jsonify(id=user.id, displayName=user.username) |
228 return jsonify(id=user.id, displayName=user.username, ENTPersonStructRattachUAI=user.uai) |
228 |
229 |
229 @app.route('/rest/oauth/validate/<token>') |
230 @app.route('/rest/oauth/validate/<token>') |
230 def validate_token(token): |
231 def validate_token(token): |
231 database_token = Token.query.filter_by(access_token=token).first() |
232 database_token = Token.query.filter_by(access_token=token).first() |
232 related_client = database_token.client |
233 related_client = database_token.client |