1 |
# -*- coding utf-8 -*- |
2 |
# classes/views/apps.py |
3 |
|
4 |
from flask import Module, request, render_template, redirect,\ |
5 |
url_for, abort |
6 |
|
7 |
from werkzeug.security import gen_salt |
8 |
|
9 |
from swtstore.classes.models import Client, User |
10 |
from swtstore.classes.utils import urlnorm |
11 |
|
12 |
|
13 |
app = Module(__name__) |
14 |
|
15 |
|
16 |
@app.route('/register', methods=['GET', 'POST']) |
17 |
def register(): |
18 |
current_user = User.getCurrentUser() |
19 |
if current_user is None: |
20 |
return redirect(url_for('frontend.index')) |
21 |
|
22 |
if request.method == 'GET': |
23 |
return render_template('app/register.html') |
24 |
|
25 |
elif request.method == 'POST': |
26 |
req_fields = ['name', 'host_url', 'redirect_uris', 'scopes'] |
27 |
for field in req_fields: |
28 |
if not request.form.get(field): |
29 |
abort(404) |
30 |
|
31 |
new_app = Client( |
32 |
id=gen_salt(40), |
33 |
client_secret=gen_salt(50), |
34 |
name=request.form.get('name'), |
35 |
description=request.form.get('desc'), |
36 |
user_id=current_user.id, |
37 |
_host_url=request.form.get('host_url'), |
38 |
_redirect_uris=urlnorm(request.form.get('redirect_uris')), |
39 |
_default_scopes=' '.join(request.form.get('scopes').split(',')), |
40 |
_is_private=False |
41 |
) |
42 |
new_app.persist() |
43 |
|
44 |
return redirect(url_for('user.myApps')) |