Simplify user creation and sysadmin assignment

Refactored user management logic to always add user and sysadmin privileges.
This commit is contained in:
Abdur Rahman 2025-09-04 08:05:51 +00:00 committed by GitHub
parent 2d897b9546
commit 3b76862c0a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -259,19 +259,12 @@ fn main() -> Result<()> {
let sysadmin_password = config.sysadmin.password; let sysadmin_password = config.sysadmin.password;
let sysadmin_email = config.sysadmin.email; let sysadmin_email = config.sysadmin.email;
let existing_users = cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini user list").read()?; let existing_users = cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini user list").read()?;
let user_check = cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini user show {username}").run(); cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini search-index clear").run().ok();
match user_check { cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini user add {username} password=password email={username}@localhost").run()?;
Ok(_) => { cmd!(
// User exists, just make sure they're a sysadmin sh,
cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini sysadmin add {username}").run().ok(); "ckan -c /etc/ckan/default/ckan.ini sysadmin add admin_user"
println!("User {username} already exists, ensured sysadmin privileges."); )
},
Err(_) => {
// User doesn't exist, create them
cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini user add {username} password=password email={username}@localhost").run()?;
cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini sysadmin add {username}").run()?;
}
}
.run()?; .run()?;
println!( println!(
"{}", "{}",