Refactor user management for CKAN installation

This commit is contained in:
Abdur Rahman 2025-09-04 08:01:11 +00:00 committed by GitHub
parent f686bd7b2e
commit 2d897b9546
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -259,13 +259,19 @@ 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()?;
println!("Existing users: {}", existing_users); 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 user add admin_user password=password email=admin@localhost").run()?; match user_check {
cmd!(sh, "ckan -c /etc/ckan/default/ckan.ini sysadmin add admin_user").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!(
"{}", "{}",