mirror of
https://github.com/speatzle/nfsense.git
synced 2025-05-10 18:38:22 +00:00
Add delete_user RPC Method
This commit is contained in:
parent
9dcd861a29
commit
c7e9e9dfee
2 changed files with 24 additions and 0 deletions
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue