about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--wqflask/cfg/default_settings.py7
-rw-r--r--wqflask/secure_server.py24
-rw-r--r--wqflask/wqflask/templates/security/_macros.html16
-rw-r--r--wqflask/wqflask/templates/security/_menu.html15
-rw-r--r--wqflask/wqflask/templates/security/_messages.html9
-rw-r--r--wqflask/wqflask/templates/security/register_user.html45
6 files changed, 96 insertions, 20 deletions
diff --git a/wqflask/cfg/default_settings.py b/wqflask/cfg/default_settings.py
index 53b5a96e..a575a3bd 100644
--- a/wqflask/cfg/default_settings.py
+++ b/wqflask/cfg/default_settings.py
@@ -4,5 +4,8 @@ LOGFILE = """/tmp/flask_gn_log"""
 #400 bad request response with no exception/log 
 TRAP_BAD_REQUEST_ERRORS = True
 
-#SECURITY_CONFIRMABLE = True
-SECURITY_TRACKABLE = True
\ No newline at end of file
+# http://pythonhosted.org/Flask-Security/configuration.html
+SECURITY_CONFIRMABLE = True
+SECURITY_TRACKABLE = True
+SECURITY_REGISTERABLE = True
+SECURITY_RECOVERABLE = True
diff --git a/wqflask/secure_server.py b/wqflask/secure_server.py
index 49e0b433..425fce89 100644
--- a/wqflask/secure_server.py
+++ b/wqflask/secure_server.py
@@ -4,15 +4,8 @@ from wqflask import app
 
 from flask import Flask, render_template
 from flask.ext.sqlalchemy import SQLAlchemy
-from flask.ext.security import Security, SQLAlchemyUserDatastore, \
-     UserMixin, RoleMixin
+from flask.ext.security import Security, SQLAlchemyUserDatastore, UserMixin, RoleMixin
 
-# Create app
-#app = Flask(__name__)
-app.config['SECRET_KEY'] = 'LjfrbDOlvdFMT5cCi9qrJqStxK4NcmxW'
-app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://webqtl:f2ZypIflRM@gn.cazhbciu2y1i.us-east-1.rds.amazonaws.com/db_webqtl'
-#app.config['SECURITY_CONFIRMABLE'] = True
-app.config['SECURITY_TRACKABLE'] = True
 
 # Create database connection object
 db = SQLAlchemy(app)
@@ -48,19 +41,14 @@ user_datastore = SQLAlchemyUserDatastore(db, User, Role)
 security = Security(app, user_datastore)
 
 # Create a user to test with
-#@app.before_first_request
-def create_user():
-    db.create_all()
-    user_datastore.create_user(email='matt@example.com', password='notebook')
-    db.session.commit()
+##@app.before_first_request
+#def create_user():
+#    db.create_all()
+#    user_datastore.create_user(email='matt@example.com', password='notebook')
+#    db.session.commit()
 
-## Views
-#@app.route('/')
-#def home():
-#    return render_template('index.html')
 
 import logging
-#from themodule import TheHandlerYouWant
 file_handler = logging.FileHandler("/tmp/flask_gn_log")
 file_handler.setLevel(logging.DEBUG)
 app.logger.addHandler(file_handler)
diff --git a/wqflask/wqflask/templates/security/_macros.html b/wqflask/wqflask/templates/security/_macros.html
new file mode 100644
index 00000000..8575f3db
--- /dev/null
+++ b/wqflask/wqflask/templates/security/_macros.html
@@ -0,0 +1,16 @@
+{% macro render_field_with_errors(field) %}
+  <p>
+    {{ field.label }} {{ field(**kwargs)|safe }}
+    {% if field.errors %}
+      <ul>
+      {% for error in field.errors %}
+        <li>{{ error }}</li>
+      {% endfor %}
+      </ul>
+    {% endif %}
+  </p>
+{% endmacro %}
+
+{% macro render_field(field) %}
+  <p>{{ field(**kwargs)|safe }}</p>
+{% endmacro %}
\ No newline at end of file
diff --git a/wqflask/wqflask/templates/security/_menu.html b/wqflask/wqflask/templates/security/_menu.html
new file mode 100644
index 00000000..5291f809
--- /dev/null
+++ b/wqflask/wqflask/templates/security/_menu.html
@@ -0,0 +1,15 @@
+{% if security.registerable or security.recoverable or security.confirmabled %}
+<h2>Menu</h2>
+<ul>
+  <li><a href="{{ url_for_security('login') }}">Login</a></li>
+  {% if security.registerable %}
+  <li><a href="{{ url_for_security('register') }}">Register</a><br/></li>
+  {% endif %}
+  {% if security.recoverable %}
+  <li><a href="{{ url_for_security('forgot_password') }}">Forgot password</a><br/></li>
+  {% endif %}
+  {% if security.confirmable %}
+  <li><a href="{{ url_for_security('send_confirmation') }}">Confirm account</a></li>
+  {% endif %}
+</ul>
+{% endif %}
diff --git a/wqflask/wqflask/templates/security/_messages.html b/wqflask/wqflask/templates/security/_messages.html
new file mode 100644
index 00000000..179d0636
--- /dev/null
+++ b/wqflask/wqflask/templates/security/_messages.html
@@ -0,0 +1,9 @@
+{%- with messages = get_flashed_messages(with_categories=true) -%}
+  {% if messages %}
+    <ul class="flashes">
+    {% for category, message in messages %}
+      <li class="{{ category }}">{{ message }}</li>
+    {% endfor %}
+    </ul>
+  {% endif %}
+{%- endwith %}
\ No newline at end of file
diff --git a/wqflask/wqflask/templates/security/register_user.html b/wqflask/wqflask/templates/security/register_user.html
new file mode 100644
index 00000000..af87f810
--- /dev/null
+++ b/wqflask/wqflask/templates/security/register_user.html
@@ -0,0 +1,45 @@
+{% from "security/_macros.html" import render_field_with_errors, render_field %}
+{% extends "base.html" %}
+{% include "security/_messages.html" %}
+{% block content %}
+<body>
+  <div class="container">
+    <div class="content">
+      <div class="row">
+        <div class="login-form">
+          <h2>Register</h2>
+          <form action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
+            <fieldset>
+              <div class="clearfix">
+                {{ render_field_with_errors(register_user_form.email) }}
+              </div>
+              <div class="clearfix">
+                {{ render_field_with_errors(register_user_form.password) }}
+              </div>
+              {% if register_user_form.password_confirm %}
+                  <div class="clearfix">
+                  {{ render_field_with_errors(register_user_form.password_confirm) }}
+                  </div>
+              {% endif %}
+              {{ render_field(register_user_form.submit) }}
+            </fieldset>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div> 
+</body>
+
+{% include "security/_menu.html" %}
+
+{% endblock %}
+
+<!--<form action="{{ url_for_security('register') }}" method="POST" name="register_user_form">
+  {{ register_user_form.hidden_tag() }}
+  {{ render_field_with_errors(register_user_form.email) }}
+  {{ render_field_with_errors(register_user_form.password) }}
+  {% if register_user_form.password_confirm %}
+    {{ render_field_with_errors(register_user_form.password_confirm) }}
+  {% endif %}
+  {{ render_field(register_user_form.submit) }}
+</form>-->
\ No newline at end of file