User table:

Added button for single user edit
Added delete-trash-icon (not working)
Roles are displayed correct per user
Guest user is not visible if anonymous browsing is disabled
This commit is contained in:
Ozzie Isaacs
2021-01-31 14:54:45 +01:00
parent f45ea1a31c
commit eeb7974e05
4 changed files with 78 additions and 23 deletions

View File

@ -217,25 +217,34 @@ def view_configuration():
@admin_required
def edit_user_table():
visibility = current_user.view_settings.get('useredit', {})
allUser = ub.session.query(ub.User).all()
return render_title_template("user_table.html", users=allUser, visiblility=visibility,
title=_(u"Edit Users"), page="usertable")
allUser = ub.session.query(ub.User)
if not config.config_anonbrowse:
allUser = allUser.filter(ub.User.role.op('&')(constants.ROLE_ANONYMOUS) != constants.ROLE_ANONYMOUS)
return render_title_template("user_table.html",
users=allUser.all(),
visiblility=visibility,
all_roles = constants.ALL_ROLES,
title=_(u"Edit Users"),
page="usertable")
@admi.route("/axjax/listusers")
@login_required
@admin_required
def list_users():
off = request.args.get("offset") or 0
limit = request.args.get("limit") or 10
total_count = ub.session.query(ub.User).count()
limit = request.args.get("limit") or 40
search = request.args.get("search")
all_user = ub.session.query(ub.User)
if not config.config_anonbrowse:
all_user = all_user.filter(ub.User.role.op('&')(constants.ROLE_ANONYMOUS) != constants.ROLE_ANONYMOUS)
total_count = all_user.count()
if search:
users = ub.session.query(ub.User).filter().offset(off).limit(limit).all()
users = all_user.filter().offset(off).limit(limit).all()
filtered_count = users.length()
# entries, filtered_count, pagination = calibre_db.get_search_results(search, off, order, limit)
else:
users = ub.session.query(ub.User).offset(off).limit(limit).all()
users = all_user.offset(off).limit(limit).all()
filtered_count = total_count
table_entries = {'totalNotFiltered': total_count, 'total': filtered_count, "rows": users}
@ -251,7 +260,11 @@ def list_users():
@admin_required
def edit_list_user(param):
vals = request.form.to_dict()
user = ub.session.query(ub.User).filter(ub.User.id == vals['pk']).one_or_none() # ub.User.query calibre_db.get_book(vals['pk'])
all_user = ub.session.query(ub.User)
if not config.config_anonbrowse:
all_user = all_user.filter(ub.User.role.op('&')(constants.ROLE_ANONYMOUS) != constants.ROLE_ANONYMOUS)
user = all_user.filter(ub.User.id == vals['pk']).one_or_none()
if param =='nickname':
if not ub.session.query(ub.User).filter(ub.User.nickname == vals['value']).scalar():
user.nickname = vals['value']