Add delete_user RPC Method

This commit is contained in:
Samuel Lorch 2023-10-29 22:52:28 +01:00
parent 9dcd861a29
commit c7e9e9dfee
2 changed files with 24 additions and 0 deletions

View file

@ -56,6 +56,10 @@ pub fn new_rpc_module(state: RpcState) -> RpcModule<RpcState> {
.register_method("system.create_user", system::create_user)
.unwrap();
module
.register_method("system.delete_user", system::delete_user)
.unwrap();
module
.register_method("network.get_static_routes", network::get_static_routes)
.unwrap();

View file

@ -48,3 +48,23 @@ pub fn create_user(p: Params, state: &RpcState) -> Result<(), ApiError> {
Err(ApiError::InvalidParams)
}
}
#[derive(Deserialize)]
struct DeleteUser {
name: String,
}
pub fn delete_user(p: Params, state: &RpcState) -> Result<(), ApiError> {
let u: DeleteUser = p.parse().unwrap();
let mut cm = state.config_manager.clone();
let mut tx = cm.start_transaction();
match tx.changes.system.users.remove(&u.name) {
Some(_) => return tx.commit().map_err(|source| ApiError::InvalidParams),
None => {
tx.revert();
Err(ApiError::InvalidParams)
}
}
}