Added delete user support.

This commit is contained in:
Antonio de la Rosa 2025-11-02 18:03:46 +01:00
parent 88e2428a71
commit 980193c347
5 changed files with 191 additions and 3 deletions

View file

@ -890,7 +890,7 @@ def pastafari2_get_server_users(server_id):
with db.query('select * from systemuser WHERE server_id=%s', [server_id]) as cursor:
for user in cursor:
rows.append({'username': '<a href="#" class="change_password">'+user['username']+'</a>', 'options': ''})
rows.append({'username': '<a href="#" class="change_password">'+user['username']+'</a>', 'options': '<a href="'+url_for('admin_app.pastafari2_delete_user', server_id=server_id, username=user['username'])+'">'+_('Delete')+'</a>'})
arr_return={'fields': fields, 'rows': rows, 'html_pages': ''}
@ -1067,3 +1067,71 @@ def pastafari2_change_user_password(server_id):
return {'error': error, 'error_form': error_form, 'task_id': task_id}
@admin_app.route('/pastafari2/delete_user/')
def pastafari2_delete_user():
db=g.connection
server=ServerDbTask(db)
server_id=request.args.get('server_id', '0')
user=SystemUser(db)
arr_server=server.select_a_row(server_id)
username=request.args.get('username')
arr_user=user.set_conditions('WHERE username=%s AND server_id=%s', [username, server_id]).select_a_row_where()
if arr_server and arr_user:
return t.load_template('delete_user.phtml', title=_('Delete user'), path_module='admin_app.pastafari2_dashboard', server_id=server_id, server=arr_server, username=username, user_id=arr_user['id'])
else:
return ""
@admin_app.route('/pastafari2/delete_user_db/<int:server_id>', methods=['POST'])
def pastafari2_delete_user_db(server_id):
db=g.connection
error=0
server=ServerDbTask(db)
user=SystemUser(db)
arr_server=server.set_conditions('WHERE id=%s', [server_id]).select_a_row_where([], True)
user_id=request.form.get('user_id', '0')
arr_user=user.set_conditions('WHERE id=%s AND server_id=%s', [user_id, server_id]).select_a_row_where([], True)
error_form={}
#server.set_conditions('WHERE id=%s', [server_id]).delete()
if arr_server and arr_user:
#user.set_conditions('WHERE id=%s',[arr_user['id']]).delete()
sshtask=Task(db)
ssh_key_priv=config_task.ssh_private_key
if not sshtask.run_task(arr_server['ip'], 'modules.pastafari2.tasks.system.delete_user', 'Delete user', 'Delete', 'Task for delete a unix user', {'user_id': user_id, 'username': arr_user['username']}, config_task.remote_user, '', '', url_for('admin_app.pastafari2_dashboard', server_id=server_id), ssh_key_priv=ssh_key_priv, ssh_key_password='', send_task=True, ssh_port=arr_server['ssh_port']):
error=1
task_id=sshtask.task_id
if task_id:
log=check_task_status(_('User deleted'), db, task_id)
error=log['error']
error_form['#user_delete_error']=log['message']
return {'error': error, 'error_form': error_form, 'task_id': task_id}