diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-08-05 23:55:44 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-08-05 23:55:44 +0200 |
commit | f7d433e6e8559b4584263cae025d3addd1342df4 (patch) | |
tree | 1553cd2fd935ab57667a7ac83aa0407c30a8f3da /src/Common/UserManager.cpp | |
parent | 11d25f7765e6cc5f4ae501bfe78202808a880f3c (diff) | |
download | mad-f7d433e6e8559b4584263cae025d3addd1342df4.tar mad-f7d433e6e8559b4584263cae025d3addd1342df4.zip |
UserManager: Check-Funktionen hinzugefügt
Diffstat (limited to 'src/Common/UserManager.cpp')
-rw-r--r-- | src/Common/UserManager.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/Common/UserManager.cpp b/src/Common/UserManager.cpp index 37cee6c..7f50f28 100644 --- a/src/Common/UserManager.cpp +++ b/src/Common/UserManager.cpp @@ -137,7 +137,22 @@ void UserManager::setPassword(unsigned long /*uid*/, const std::string& /*passwo throw Core::Exception(Core::Exception::NOT_AVAILABLE); } +void UserManager::checkUserInfo(const UserInfo &userInfo) throw(Core::Exception) { + boost::shared_lock<boost::shared_mutex> lock(mutex); + + if(!dbBackend) + throw Core::Exception(Core::Exception::NOT_AVAILABLE); + + dbBackend->checkUserInfo(userInfo); + + for(std::set<boost::shared_ptr<UserConfigBackend> >::iterator configBackend = configBackends.begin(); configBackend != configBackends.end(); ++configBackend) { + (*configBackend)->checkUserInfo(userInfo); + } +} + void UserManager::addUser(const UserInfo &userInfo) throw(Core::Exception) { + checkUserInfo(userInfo); + boost::lock_guard<boost::shared_mutex> lock(mutex); if(!dbBackend) @@ -156,6 +171,8 @@ void UserManager::addUser(const UserInfo &userInfo) throw(Core::Exception) { } void UserManager::updateUser(unsigned long uid, const UserInfo &userInfo) throw(Core::Exception) { + checkUserInfo(userInfo); + boost::lock_guard<boost::shared_mutex> lock(mutex); if(!dbBackend) @@ -199,7 +216,23 @@ void UserManager::deleteUser(unsigned long uid) throw(Core::Exception) { } } + +void UserManager::checkGroupInfo(const GroupInfo &groupInfo) throw(Core::Exception) { + boost::shared_lock<boost::shared_mutex> lock(mutex); + + if(!dbBackend) + throw Core::Exception(Core::Exception::NOT_AVAILABLE); + + dbBackend->checkGroupInfo(groupInfo); + + for(std::set<boost::shared_ptr<UserConfigBackend> >::iterator configBackend = configBackends.begin(); configBackend != configBackends.end(); ++configBackend) { + (*configBackend)->checkGroupInfo(groupInfo); + } +} + void UserManager::addGroup(const GroupInfo &groupInfo) throw(Core::Exception) { + checkGroupInfo(groupInfo); + boost::lock_guard<boost::shared_mutex> lock(mutex); if(!dbBackend) @@ -218,6 +251,8 @@ void UserManager::addGroup(const GroupInfo &groupInfo) throw(Core::Exception) { } void UserManager::updateGroup(unsigned long gid, const GroupInfo &groupInfo) throw(Core::Exception) { + checkGroupInfo(groupInfo); + boost::lock_guard<boost::shared_mutex> lock(mutex); if(!dbBackend) |