<p>我知道这是一个古老的问题,但我想我有一个优雅的答案。在</p>
<p>第一个导入寄存器用户</p>
<pre><code>from flask_security.registerable import register_user
</code></pre>
<p>然后,由于您不想让任何人注册,请确保registerable被禁用(尽管disabled是默认设置,因此您可以忽略此设置),并且由于您希望发送确认电子邮件,请启用confirmable和changeable,以便用户更改密码</p>
^{pr2}$
<p>然后,您可以创建用户注册视图,并用role required装饰它。我使用了我自己的自定义注册表,所以我不得不多走一英里去检查用户是否已经存在,并返回一个相应的错误</p>
<pre><code>@app.route('/admin/create/user', methods=['GET', 'POST'])
@roles_required('admin')
def admin_create_user():
form = RegistrationForm(request.form)
if request.method == 'POST' and form.validate_on_submit():
email = form.email.data
password = form.password.data
user_exists = session.query(User).filter_by(email=email).first()
if user_exists:
form.email.errors.append(email + ' is already associated with another user')
form.email.data = email
email = ''
return render_template('create-user.html', form = form)
else:
register_user(
email=email,
password = password)
flash('User added successfully')
return render_template('create-user.html', form = form)
</code></pre>