Prevent delete of last admin user
This commit is contained in:
parent
546ed65e1d
commit
8e4539cf8e
14
cps/admin.py
14
cps/admin.py
|
@ -650,10 +650,16 @@ def edit_user(user_id):
|
|||
if request.method == "POST":
|
||||
to_save = request.form.to_dict()
|
||||
if "delete" in to_save:
|
||||
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'))
|
||||
if ub.session.query(ub.User).filter(and_(ub.User.role.op('&')
|
||||
(constants.ROLE_ADMIN)== constants.ROLE_ADMIN,
|
||||
ub.User.id != content.id)).count():
|
||||
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:
|
||||
if "password" in to_save and to_save["password"]:
|
||||
content.password = generate_password_hash(to_save["password"])
|
||||
|
|
Loading…
Reference in New Issue
Block a user