add config option to disable registration

add command to create user
This commit is contained in:
Matthew Scragg 2014-09-13 22:47:17 -05:00
parent 17eabddd70
commit b8531a0347
10 changed files with 131 additions and 45 deletions

View file

@ -0,0 +1,35 @@
import click
from realms.lib.util import random_string
from realms.modules.auth.models import User
@click.group()
def cli():
pass
@cli.command()
@click.argument('username')
@click.argument('email')
@click.option('--password', help='Leave blank for random password')
def create_user(username, email, password):
""" Create a new user
"""
show_pass = not password
if not password:
password = random_string(12)
if User.get_by_username(username):
click.secho("Username %s already exists" % username, fg='red')
return
if User.get_by_email(email):
click.secho("Email %s already exists" % email, fg='red')
return
User.create(username, email, password)
click.secho("User %s created" % username, fg='green')
if show_pass:
click.secho("Password: %s" % password, fg='yellow')

View file

@ -2,6 +2,7 @@ from flask_wtf import Form, RecaptchaField
from wtforms import StringField, PasswordField, validators
from realms import config
class RegistrationForm(Form):
username = StringField('Username', [validators.Length(min=4, max=25)])
email = StringField('Email Address', [validators.Length(min=6, max=35)])

View file

@ -33,6 +33,11 @@ def login():
@blueprint.route("/register", methods=['GET', 'POST'])
def register():
if not config.REGISTRATION_ENABLED:
flash("Registration is disabled")
return redirect(url_for(config.ROOT_ENDPOINT))
form = RegistrationForm()
if request.method == "POST":
@ -61,6 +66,7 @@ def register():
def settings():
return render_template("auth/settings.html")
@blueprint.route("/logout")
def logout():
User.logout()

View file

@ -33,7 +33,7 @@ def revert():
commit = request.form.get('commit')
cname = to_canonical(name)
if cname in config.LOCKED:
if cname in config.WIKI_LOCKED_PAGES:
flash("Page is locked")
return redirect(url_for(config.ROOT_ENDPOINT))
@ -56,7 +56,7 @@ def edit(name):
if request.method == 'POST':
edit_cname = to_canonical(request.form['name'])
if edit_cname in config.LOCKED:
if edit_cname in config.WIKI_LOCKED_PAGES:
return redirect(url_for(config.ROOT_ENDPOINT))
if edit_cname.lower() != cname.lower():
@ -91,7 +91,7 @@ def create(name):
if request.method == 'POST':
cname = to_canonical(request.form['name'])
if cname in config.LOCKED:
if cname in config.WIKI_LOCKED_PAGES:
return redirect(url_for("wiki.create"))
if not cname: