Result for testrun

Added mass delete of users
refactores user table refresh
Bugfix for sorting with selected users
Bugfix delete books #1938
This commit is contained in:
Ozzie Isaacs
2021-04-21 19:23:11 +02:00
parent 6e5a1a1f4d
commit bb4749c65b
7 changed files with 219 additions and 499 deletions

View File

@ -289,15 +289,30 @@ def list_users():
@login_required
@admin_required
def delete_user():
user_id = request.values.get('userid', -1)
content = ub.session.query(ub.User).filter(ub.User.id == int(user_id)).one_or_none()
try:
message = _delete_user(content)
return Response(json.dumps({'type': "success", 'message': message}), mimetype='application/json')
except Exception as ex:
return Response(json.dumps({'type': "danger", 'message':str(ex)}), mimetype='application/json')
log.error("User not found")
return Response(json.dumps({'type': "danger", 'message':_("User not found")}), mimetype='application/json')
user_ids = request.form.to_dict(flat=False)
if "userid[]" in user_ids:
users = ub.session.query(ub.User).filter(ub.User.id.in_(user_ids['userid[]'])).all()
elif "userid" in user_ids:
users = ub.session.query(ub.User).filter(ub.User.id == user_ids['userid'][0]).all()
count = 0
errors = list()
success = list()
if not users:
log.error("User not found")
return Response(json.dumps({'type': "danger", 'message': _("User not found")}), mimetype='application/json')
for user in users:
try:
message = _delete_user(user)
count += 1
except Exception as ex:
errors.append({'type': "danger", 'message': str(ex)})
if count == 1:
success = [{'type': "success", 'message': message}]
elif count > 1:
success = [{'type': "success", 'message': _("{} users deleted successfully").format(count)}]
success.extend(errors)
return Response(json.dumps(success), mimetype='application/json')
@admi.route("/ajax/getlocale")
@login_required
@ -367,9 +382,9 @@ def edit_list_user(param):
if not ub.session.query(ub.User).\
filter(ub.User.role.op('&')(constants.ROLE_ADMIN) == constants.ROLE_ADMIN,
ub.User.id != user.id).count():
return Response(json.dumps({'type': "danger",
return Response(json.dumps([{'type': "danger",
'message':_(u"No admin user remaining, can't remove admin role",
nick=user.name)}), mimetype='application/json')
nick=user.name)}]), mimetype='application/json')
user.role &= ~int(vals['field_index'])
elif param.startswith('sidebar'):
if user.name == "Guest" and int(vals['field_index']) == constants.SIDEBAR_READ_AND_UNREAD: