bb80149c | #ifndef _SESSION_H_ #define _SESSION_H_ #include <string> #include "request.h" #include "sys_pam.h" |
328af6e0 | class sessions_ifc { |
bb80149c | public: |
328af6e0 | virtual ~sessions_ifc () {} |
bb80149c | virtual std::string user_name (const pam_request &request) const { return ""; } }; |
328af6e0 | class sessions { |
bb80149c | private: |
328af6e0 | std::shared_ptr<sessions_ifc> delegate_; |
bb80149c | public: |
328af6e0 | sessions(std::shared_ptr<sessions_ifc> delegate = std::make_shared<sessions_ifc>()) : delegate_(delegate) {} |
bb80149c | std::string user_name (const pam_request &request) const { return delegate_->user_name(request); } |
328af6e0 | static sessions create(const pam &pam); |
bb80149c | }; #endif |