From 86e5f80837ad55932f2469d79d9e6b6bb07cf5ed Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Mon, 28 Sep 2009 19:09:22 +0200 Subject: Implemented new ConfigManager --- .../UserConfigBackendHome.cpp | 42 +++++----------------- 1 file changed, 9 insertions(+), 33 deletions(-) (limited to 'src/modules/UserConfigBackendHome/UserConfigBackendHome.cpp') diff --git a/src/modules/UserConfigBackendHome/UserConfigBackendHome.cpp b/src/modules/UserConfigBackendHome/UserConfigBackendHome.cpp index 4dca729..a19769c 100644 --- a/src/modules/UserConfigBackendHome/UserConfigBackendHome.cpp +++ b/src/modules/UserConfigBackendHome/UserConfigBackendHome.cpp @@ -31,40 +31,16 @@ namespace Mad { namespace Modules { namespace UserConfigBackendHome { -bool UserConfigBackendHome::handleConfigEntry(const Core::ConfigEntry &entry, bool /*handled*/) { - if(entry[0].getKey().matches("UserManager")) { - if(entry[1].getKey().matches("Skeleton")) { - if(entry[2].isEmpty()) - skeleton = entry[1][0]; - } - else if(entry[1].getKey().matches("HomeDir")) { - if(entry[2].isEmpty()) - homeDir = entry[1][0]; - } - else if(entry[1].getKey().matches("UserDirMode")) { - if(entry[2].isEmpty()) { - if(entry[1][0].isEmpty()) { - dirMode = 0755; - } - else { - char *endptr; - unsigned long val = std::strtoul(entry[1][0].toString().c_str(), &endptr, 8); - if(*endptr || val > 07777) { - application->logf(Core::Logger::LOG_WARNING, "UserBackendHome: Invalid configuration: DirMode '%s'", entry[1][0].toLocale().c_str()); - } - else { - dirMode = val; - } - } - } - } - else if(!entry[1].isEmpty()) - return false; - - return true; +void UserConfigBackendHome::configure() { + skeleton = application->getConfigManager()->get("UserManager.Skeleton"); + homeDir = application->getConfigManager()->get("UserManager.HomeDir", "/home"); + + dirMode = std::strtoul(application->getConfigManager()->get("UserManager.UserDirMode", "775").toString().c_str(), 0, 8); + if(dirMode > 07777) { + application->logf(Core::Logger::LOG_WARNING, "UserBackendHome: Invalid configuration: UserDirMode '%s'", + application->getConfigManager()->get("UserManager.UserDirMode").toLocale().c_str()); + dirMode = 0775; } - - return false; } void UserConfigBackendHome::setOwnerAndCopyMode(const std::string &source, const std::string &dest, const Common::UserInfo &userInfo, bool isSymlink) { -- cgit v1.2.3