From 033145b65c543d1d6c0c05ee84c1031fcd5ba3c7 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 26 May 2009 16:13:27 +0200 Subject: UserBackend-Interface erweitert und im Mysql-Backend implementiert --- src/Server/UserManager.cpp | 80 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) (limited to 'src/Server/UserManager.cpp') diff --git a/src/Server/UserManager.cpp b/src/Server/UserManager.cpp index 7101b2c..e38f458 100644 --- a/src/Server/UserManager.cpp +++ b/src/Server/UserManager.cpp @@ -66,6 +66,38 @@ boost::shared_ptr UserManager::getUserInfo(unsigned long uid) throw e; } +boost::shared_ptr UserManager::getUserInfoByName(const std::string &name) throw(Net::Exception) { + Net::Exception e(Net::Exception::NOT_IMPLEMENTED); + + for(std::set >::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + try { + return (*backend)->getUserInfoByName(name); + } + catch(Net::Exception e2) { + if(e.getErrorCode() == Net::Exception::NOT_IMPLEMENTED && e2.getErrorCode() != Net::Exception::NOT_IMPLEMENTED) + e = e2; + } + } + + throw e; +} + +boost::shared_ptr > UserManager::getUserGroups(unsigned long uid) throw(Net::Exception) { + Net::Exception e(Net::Exception::NOT_IMPLEMENTED); + + for(std::set >::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + try { + return (*backend)->getUserGroups(uid); + } + catch(Net::Exception e2) { + if(e.getErrorCode() == Net::Exception::NOT_IMPLEMENTED && e2.getErrorCode() != Net::Exception::NOT_IMPLEMENTED) + e = e2; + } + } + + throw e; +} + boost::shared_ptr > UserManager::getGroupList() throw(Net::Exception) { Net::Exception e(Net::Exception::NOT_IMPLEMENTED); @@ -82,6 +114,54 @@ boost::shared_ptr > UserManager::getG throw e; } +std::string UserManager::getGroupName(unsigned long gid) throw(Net::Exception) { + Net::Exception e(Net::Exception::NOT_IMPLEMENTED); + + for(std::set >::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + try { + return (*backend)->getGroupName(gid); + } + catch(Net::Exception e2) { + if(e.getErrorCode() == Net::Exception::NOT_IMPLEMENTED && e2.getErrorCode() != Net::Exception::NOT_IMPLEMENTED) + e = e2; + } + } + + throw e; +} + +unsigned long UserManager::getGroupId(const std::string &name) throw(Net::Exception) { + Net::Exception e(Net::Exception::NOT_IMPLEMENTED); + + for(std::set >::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + try { + return (*backend)->getGroupId(name); + } + catch(Net::Exception e2) { + if(e.getErrorCode() == Net::Exception::NOT_IMPLEMENTED && e2.getErrorCode() != Net::Exception::NOT_IMPLEMENTED) + e = e2; + } + } + + throw e; +} + +boost::shared_ptr > UserManager::getGroupUsers(unsigned long gid) throw(Net::Exception) { + Net::Exception e(Net::Exception::NOT_IMPLEMENTED); + + for(std::set >::iterator backend = backends.begin(); backend != backends.end(); ++backend) { + try { + return (*backend)->getGroupUsers(gid); + } + catch(Net::Exception e2) { + if(e.getErrorCode() == Net::Exception::NOT_IMPLEMENTED && e2.getErrorCode() != Net::Exception::NOT_IMPLEMENTED) + e = e2; + } + } + + throw e; +} + void UserManager::setPassword(unsigned long uid, const std::string &password) throw(Net::Exception) { Net::Exception e(Net::Exception::NOT_IMPLEMENTED); -- cgit v1.2.3