/* * NetworkUserBackend.h * * Copyright (C) 2009 Matthias Schiffer * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef MAD_COMMON_BACKENDS_NETWORKUSERBACKEND_H_ #define MAD_COMMON_BACKENDS_NETWORKUSERBACKEND_H_ #include "../UserBackend.h" #include "../Requests/SimpleRequest.h" namespace Mad { namespace Common { namespace Backends { class NetworkUserBackend : public UserBackend { private: class SimpleUserRequest : public Requests::SimpleRequest { public: SimpleUserRequest(Application *application, const std::string &type) : SimpleRequest(application, type) {} }; class IdUserRequest : public Request { private: std::string type; std::string idType; unsigned long id; protected: virtual void sendRequest(); public: IdUserRequest(Application *application, const std::string &type0, const std::string &idType0, unsigned long id0) : Request(application), type(type0), idType(idType0), id(id0) {} }; class NameUserRequest : public Request { private: std::string type; std::string name; protected: virtual void sendRequest(); public: NameUserRequest(Application *application, const std::string &type0, const std::string &name0) : Request(application), type(type0), name(name0) {} }; Application *application; Connection *connection; protected: virtual boost::shared_ptr > getUserList() throw(Core::Exception); virtual boost::shared_ptr getUserInfo(unsigned long uid) throw(Core::Exception); virtual boost::shared_ptr getUserInfoByName(const std::string &name) throw(Core::Exception); virtual boost::shared_ptr > getUserGroupList(unsigned long uid) throw(Core::Exception); virtual boost::shared_ptr > getGroupList() throw(Core::Exception); virtual boost::shared_ptr getGroupInfo(unsigned long gid) throw(Core::Exception); virtual boost::shared_ptr getGroupInfoByName(const std::string &name) throw(Core::Exception); virtual boost::shared_ptr > getGroupUserList(unsigned long gid) throw(Core::Exception); //virtual void setPassword(unsigned long uid, const std::string &password) throw(Core::Exception); //virtual void addUser(const UserInfo &userInfo) throw(Core::Exception); public: NetworkUserBackend(Application *application0, Connection *connection0) : application(application0), connection(connection0) {} }; } } } #endif /* MAD_COMMON_BACKENDS_NETWORKUSERBACKEND_H_ */