/* * Copyright (C) 2017 Kevin Whitaker * * 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 2 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, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * */ #ifndef LOGININTERFACE_H #define LOGININTERFACE_H #include #include #include #include #include #include #include "../WebInterface.h" #include class LoginInterface : public Wt::WContainerWidget { public: LoginInterface(WebInterface* app); void checkSessionValidity(); void createUser(Wt::Dbo::Session* session, std::string username, std::string rawPassword, bool isAdmin); private: Wt::WPushButton* loginButton; Wt::WVBoxLayout* loginLayout; Wt::WContainerWidget* loginContainer; Wt::WHBoxLayout* usernameArea; Wt::WContainerWidget* usernameContainer; Wt::WHBoxLayout* passwordArea; Wt::WContainerWidget* passwordContainer; Wt::WLineEdit* usernameField; Wt::WLineEdit* passwordField; Wt::WText* loginMessage; WebInterface* app; void loginCheck(); int getUserCount(Wt::Dbo::Session* session); User getUserForLoginCookie(Wt::Dbo::Session* session, std::string cookie); User getUserForLoginAuth(Wt::Dbo::Session* session, std::string username, std::string rawPassword); void setLocalCookieForUser(User user); }; #endif // LOGININTERFACE_H