diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-06-30 22:57:29 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-06-30 22:57:29 +0200 |
commit | c9c2e1401bae1938fe392f6ee0903939b63b050c (patch) | |
tree | 84ed6f8fa3e46e8bd8cd45558adb5b539cd2a06c /src/Common/UserManager.cpp | |
parent | 68ec8067feec09a6fecf8bf2fbffb5d757db3d4a (diff) | |
download | mad-c9c2e1401bae1938fe392f6ee0903939b63b050c.tar mad-c9c2e1401bae1938fe392f6ee0903939b63b050c.zip |
UserManager erweitert
Ermögliche Caching der User-Group-Zuordnungen
Diffstat (limited to 'src/Common/UserManager.cpp')
-rw-r--r-- | src/Common/UserManager.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/Common/UserManager.cpp b/src/Common/UserManager.cpp index 253466e..c56195d 100644 --- a/src/Common/UserManager.cpp +++ b/src/Common/UserManager.cpp @@ -189,6 +189,24 @@ boost::shared_ptr<const std::set<unsigned long> > UserManager::getGroupUserList( throw e; } +boost::shared_ptr<const std::multimap<unsigned long, unsigned long> > UserManager::getFullUserGroupList() throw(Core::Exception) { + Core::Exception e(Core::Exception::NOT_IMPLEMENTED); + + boost::lock_guard<boost::shared_mutex> lock(mutex); + + for(BackendMap::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + try { + return backend->second->getFullUserGroupList(); + } + catch(Core::Exception e2) { + if(e.getErrorCode() == Core::Exception::NOT_IMPLEMENTED && e2.getErrorCode() != Core::Exception::NOT_IMPLEMENTED) + e = e2; + } + } + + throw e; +} + void UserManager::setPassword(unsigned long uid, const std::string &password) throw(Core::Exception) { Core::Exception e(Core::Exception::NOT_IMPLEMENTED); |