1
0
mirror of https://github.com/janeczku/calibre-web synced 2024-09-29 15:30:50 +00:00

Prevent delete of last admin user

This commit is contained in:
Ozzieisaacs 2019-06-10 19:26:01 +02:00
parent 546ed65e1d
commit 8e4539cf8e

View File

@ -650,10 +650,16 @@ def edit_user(user_id):
if request.method == "POST": if request.method == "POST":
to_save = request.form.to_dict() to_save = request.form.to_dict()
if "delete" in to_save: if "delete" in to_save:
ub.session.query(ub.User).filter(ub.User.id == content.id).delete() if ub.session.query(ub.User).filter(and_(ub.User.role.op('&')
ub.session.commit() (constants.ROLE_ADMIN)== constants.ROLE_ADMIN,
flash(_(u"User '%(nick)s' deleted", nick=content.nickname), category="success") ub.User.id != content.id)).count():
return redirect(url_for('admin.admin')) ub.session.query(ub.User).filter(ub.User.id == content.id).delete()
ub.session.commit()
flash(_(u"User '%(nick)s' deleted", nick=content.nickname), category="success")
return redirect(url_for('admin.admin'))
else:
flash(_(u"No admin user remaining, can't delete user", nick=content.nickname), category="error")
return redirect(url_for('admin.admin'))
else: else:
if "password" in to_save and to_save["password"]: if "password" in to_save and to_save["password"]:
content.password = generate_password_hash(to_save["password"]) content.password = generate_password_hash(to_save["password"])