From c5660986d68de2898bec5bebacbaed9287f73e8d Mon Sep 17 00:00:00 2001 From: azivner Date: Tue, 15 Aug 2017 22:57:44 -0400 Subject: [PATCH] path to document file is now configurable, flask secret is now also taken from configuration --- config-sample.ini | 7 +++++++ generate-secret-key.py | 5 +++++ run.sh | 5 +---- src/app.py | 22 ++++++++++++++-------- src/sql.py | 8 +++++--- 5 files changed, 32 insertions(+), 15 deletions(-) create mode 100644 generate-secret-key.py diff --git a/config-sample.ini b/config-sample.ini index bf2c544c5..1aff92477 100644 --- a/config-sample.ini +++ b/config-sample.ini @@ -1,3 +1,10 @@ +[Document] +documentPath=demo.ncdb + +[Security] +# run python generate-secret-key.py and paste the result below +flaskSecretKey= + [Network] port=5000 certPath=cert.crt diff --git a/generate-secret-key.py b/generate-secret-key.py new file mode 100644 index 000000000..8f810abf2 --- /dev/null +++ b/generate-secret-key.py @@ -0,0 +1,5 @@ +#!/usr/bin/python +import os +import base64 + +print(base64.b64encode(os.urandom(24))) \ No newline at end of file diff --git a/run.sh b/run.sh index 1cf658d8e..995721af2 100644 --- a/run.sh +++ b/run.sh @@ -1,6 +1,3 @@ #!/bin/sh -export FLASK_DEBUG=0 -export FLASK_APP=src/app.py - -flask run \ No newline at end of file +python src/app.py \ No newline at end of file diff --git a/src/app.py b/src/app.py index f2c7e81f3..2ffb58dbd 100644 --- a/src/app.py +++ b/src/app.py @@ -1,22 +1,27 @@ +import os + import bcrypt import configparser -import os from flask import Flask, request, send_from_directory from flask import render_template, redirect from flask_cors import CORS from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user from flask_restful import Api + +from expanded_note import ExpandedNote from move_after_note import MoveAfterNote +from move_before_note import MoveBeforeNote from move_to_note import MoveToNote from notes import Notes from notes_children import NotesChildren - -from expanded_note import ExpandedNote -from move_before_note import MoveBeforeNote +from sql import connect from tree import Tree +config = configparser.ConfigParser() +config.read('config.ini') + app = Flask(__name__) -app.secret_key = 'dshjkjsdhfk9832fsdlhf' +app.secret_key = config['Security']['flaskSecretKey'] class User(UserMixin): pass @@ -36,9 +41,6 @@ def logout(): logout_user() return redirect('login') -config = configparser.ConfigParser() -config.read('config.ini') - user = User() user.id = config['Login']['username'] @@ -46,6 +48,10 @@ port = config['Network']['port'] certPath = config['Network']['certPath'] certKeyPath = config['Network']['certKeyPath'] +documentPath = config['Document']['documentPath'] + +connect(documentPath) + hashedPassword = config['Login']['password-hash'].encode('utf-8') @app.route('/login', methods=['POST']) diff --git a/src/sql.py b/src/sql.py index c9f56f440..641f182b6 100644 --- a/src/sql.py +++ b/src/sql.py @@ -1,5 +1,5 @@ -import sqlite3 import base64 +import sqlite3 def dict_factory(cursor, row): d = {} @@ -11,8 +11,10 @@ def dict_factory(cursor, row): return d -conn = sqlite3.connect('demo.ncdb') -conn.row_factory = dict_factory +def connect(documentPath): + global conn + conn = sqlite3.connect(documentPath) + conn.row_factory = dict_factory def insert(tablename, rec): keys = ','.join(rec.keys())