From f892ec46086eee9c4bfb954469016829fb201532 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 10 Jul 2009 02:08:03 +0200 Subject: =?UTF-8?q?updateUser=20und=20deleteUser=20zum=20UserBackendMysql,?= =?UTF-8?q?=20NetworkUserBackend=20und=20Client=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Client/UserCommands.cpp | 78 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) (limited to 'src/Client/UserCommands.cpp') diff --git a/src/Client/UserCommands.cpp b/src/Client/UserCommands.cpp index 6bc2c11..96e9cc6 100644 --- a/src/Client/UserCommands.cpp +++ b/src/Client/UserCommands.cpp @@ -264,5 +264,83 @@ void UserCommands::addUserCommand(CommandParser *commandParser, const std::vecto } } +void UserCommands::updateUserCommand(CommandParser *commandParser, const std::vector &args) { + if(args.size() < 6) { + std::cerr << args[0] << ": Too few arguments." << std::endl; + commandParser->printUsage("update_user"); + return; + } + if(args.size() > 6) { + std::cerr << args[0] << ": Too many arguments." << std::endl; + commandParser->printUsage("update_user"); + return; + } + + char *endptr; + unsigned long origUid = std::strtoul(args[1].c_str(), &endptr, 10); + if(args[1].empty() || *endptr != '\0') { + std::cerr << args[0] << ": Unable to parse the old user id." << std::endl; + commandParser->printUsage("update_user"); + return; + } + + unsigned long uid = std::strtoul(args[2].c_str(), &endptr, 10); + if(args[2].empty() || *endptr != '\0') { + std::cerr << args[0] << ": Unable to parse the new user id." << std::endl; + commandParser->printUsage("update_user"); + return; + } + + unsigned long gid = std::strtoul(args[3].c_str(), &endptr, 10); + if(args[3].empty() || *endptr != '\0') { + std::cerr << args[0] << ": Unable to parse group id." << std::endl; + commandParser->printUsage("update_user"); + return; + } + + try { + Common::UserInfo user(uid, args[4]); + user.setGid(gid); + user.setFullName(args[5]); + + commandParser->application->getUserManager()->updateUser(origUid, user); + + std::cout << "User updated." << std::endl; + } + catch(Core::Exception e) { + std::cerr << "An error occurred during your request: " << e.strerror() << "." << std::endl; + } +} + +void UserCommands::deleteUserCommand(CommandParser *commandParser, const std::vector &args) { + if(args.size() < 2) { + std::cerr << args[0] << ": No user id given." << std::endl; + commandParser->printUsage("delete_user"); + return; + } + if(args.size() > 2) { + std::cerr << args[0] << ": Too many arguments." << std::endl; + commandParser->printUsage("delete_user"); + return; + } + + char *endptr; + unsigned long uid = std::strtoul(args[1].c_str(), &endptr, 10); + if(args[1].empty() || *endptr != '\0') { + std::cerr << args[0] << ": Unable to parse user id." << std::endl; + commandParser->printUsage("delete_user"); + return; + } + + try { + commandParser->application->getUserManager()->deleteUser(uid); + + std::cout << "User deleted." << std::endl; + } + catch(Core::Exception e) { + std::cerr << "An error occurred during your request: " << e.strerror() << "." << std::endl; + } +} + } } -- cgit v1.2.3