| 119 | } |
| 120 | |
| 121 | static CoTryTask<Dispatcher::OutputTable> handle(IEnv &ienv, |
| 122 | const argparse::ArgumentParser &parser, |
| 123 | const Dispatcher::Args &args) { |
| 124 | auto &env = dynamic_cast<AdminEnv &>(ienv); |
| 125 | ENSURE_USAGE(args.empty()); |
| 126 | Dispatcher::OutputTable output; |
| 127 | |
| 128 | auto uid = Uid(parser.get<uint32_t>("uid")); |
| 129 | |
| 130 | core::UserStore store; |
| 131 | auto handler = [&](kv::IReadWriteTransaction &txn) -> CoTryTask<void> { |
| 132 | CO_RETURN_ON_ERROR(co_await ensureAdmin(txn, store, env.userInfo.token)); |
| 133 | co_return co_await store.removeUser(txn, uid); |
| 134 | }; |
| 135 | auto commitRes = co_await kv::WithTransaction(getRetryStrategy()) |
| 136 | .run(env.kvEngineGetter()->createReadWriteTransaction(), std::move(handler)); |
| 137 | CO_RETURN_ON_ERROR(commitRes); |
| 138 | |
| 139 | co_return output; |
| 140 | } |
| 141 | }; |
| 142 | |
| 143 | struct UserSetHandler { |
nothing calls this directly
no test coverage detected