admin: clean up mifareidhash modification
parent
9e5c7a3fcb
commit
a01336216d
|
@ -130,9 +130,7 @@ def admin_user_view_del_mifareidhash(uid):
|
|||
value = flask.request.args.get('value')
|
||||
return flask.render_template('admin/ops/del_mifareidhash.html', uid=uid, form=form, value=value)
|
||||
|
||||
@bp.route('/admin/users/<uid>/add_mifareidhash', methods=['POST'])
|
||||
@admin_required
|
||||
def admin_user_add_mifareidhash(uid):
|
||||
def _modify_mifareidhash(uid, form, modify_func):
|
||||
ldaputils.validate_name(uid)
|
||||
conn = context.get_connection()
|
||||
|
||||
|
@ -145,17 +143,9 @@ def admin_user_add_mifareidhash(uid):
|
|||
return flask.redirect(redirect_url)
|
||||
|
||||
try:
|
||||
form = AddMifareIDHash()
|
||||
if form.validate_on_submit():
|
||||
new_value = form.value.data
|
||||
|
||||
email.send_papertrail(
|
||||
f'Adding mifareIDHash for user {uid}',
|
||||
f'New mifareIDHash: {new_value}'
|
||||
)
|
||||
|
||||
dn = ldaputils.user_dn(uid)
|
||||
conn.modify_s(dn, [(ldap.MOD_ADD, 'mifareidhash', new_value.encode('utf-8'))])
|
||||
modify_func(conn, dn)
|
||||
|
||||
context.refresh_profile(dn)
|
||||
flask.flash('Added mifareidhash', category='info')
|
||||
|
@ -174,49 +164,38 @@ def admin_user_add_mifareidhash(uid):
|
|||
flask.flash(f'Could not modify profile due to LDAP error: {e}', 'danger')
|
||||
return flask.redirect(redirect_url)
|
||||
|
||||
|
||||
@bp.route('/admin/users/<uid>/add_mifareidhash', methods=['POST'])
|
||||
@admin_required
|
||||
def admin_user_add_mifareidhash(uid):
|
||||
form = AddMifareIDHash()
|
||||
def modify_func(conn, dn):
|
||||
new_value = form.value.data
|
||||
|
||||
email.send_papertrail(
|
||||
f'Adding mifareIDHash for user {uid}',
|
||||
f'New mifareIDHash: {new_value}'
|
||||
)
|
||||
|
||||
conn.modify_s(dn, [(ldap.MOD_ADD, 'mifareidhash', new_value.encode('utf-8'))])
|
||||
|
||||
return _modify_mifareidhash(uid, form, modify_func)
|
||||
|
||||
@bp.route('/admin/users/<uid>/del_mifareidhash', methods=['POST'])
|
||||
@admin_required
|
||||
def admin_user_del_mifareidhash(uid):
|
||||
ldaputils.validate_name(uid)
|
||||
conn = context.get_connection()
|
||||
form = DelForm()
|
||||
def modify_func(conn, dn):
|
||||
old_value = flask.request.args.get('value')
|
||||
|
||||
groups = _get_groups_of(conn, uid)
|
||||
is_protected = _is_user_protected(conn, uid, groups)
|
||||
email.send_papertrail(
|
||||
f'Deleting mifareIDHash for user {uid}',
|
||||
f'Deleted mifareIDHash: {old_value}'
|
||||
)
|
||||
|
||||
redirect_url = flask.url_for('admin.admin_user_view', uid=uid)
|
||||
if is_protected:
|
||||
flask.flash('Cannot modify protected user', 'danger')
|
||||
return flask.redirect(redirect_url)
|
||||
conn.modify_s(dn, [(ldap.MOD_DELETE, 'mifareidhash', old_value.encode('utf-8'))])
|
||||
|
||||
try:
|
||||
form = DelForm()
|
||||
if form.validate_on_submit():
|
||||
old_value = flask.request.args.get('value')
|
||||
|
||||
email.send_papertrail(
|
||||
f'Deleting mifareIDHash for user {uid}',
|
||||
f'Deleted mifareIDHash: {old_value}'
|
||||
)
|
||||
|
||||
dn = ldaputils.user_dn(uid)
|
||||
conn.modify_s(dn, [(ldap.MOD_DELETE, 'mifareidhash', old_value.encode('utf-8'))])
|
||||
|
||||
context.refresh_profile(dn)
|
||||
flask.flash('Deleted mifareidhash', category='info')
|
||||
return flask.redirect(redirect_url)
|
||||
|
||||
for field, errors in form.errors.items():
|
||||
for error in errors:
|
||||
flask.flash("Error in the {} field - {}".format(
|
||||
getattr(form, field).label.text,
|
||||
error
|
||||
), 'danger')
|
||||
|
||||
return flask.redirect(redirect_url)
|
||||
except ldap.LDAPError as e:
|
||||
print('LDAP error:', e)
|
||||
flask.flash(f'Could not modify profile due to LDAP error: {e}', 'danger')
|
||||
return flask.redirect(redirect_url)
|
||||
return _modify_mifareidhash(uid, form, modify_func)
|
||||
|
||||
@bp.route('/admin/groups/')
|
||||
@admin_required
|
||||
|
|
Loading…
Reference in New Issue