Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef FORUM_USER_HANDLER_HPP_INCLUDED
00017 #define FORUM_USER_HANDLER_HPP_INCLUDED
00018
00019 #include "user_handler.hpp"
00020
00021 #include <vector>
00022
00023 #include <mysql/mysql.h>
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 class fuh : public user_handler {
00041 public:
00042 fuh(const config& c);
00043 ~fuh();
00044
00045
00046 void add_user(const std::string& name, const std::string& mail, const std::string& password);
00047
00048
00049 void remove_user(const std::string& name);
00050
00051 void clean_up() {}
00052
00053 bool login(const std::string& name, const std::string& password, const std::string& seed);
00054
00055
00056
00057
00058
00059
00060
00061 std::string create_pepper(const std::string& name);
00062
00063 void user_logged_in(const std::string& name);
00064
00065 bool user_exists(const std::string& name);
00066
00067 bool user_is_active(const std::string& name);
00068
00069 bool user_is_moderator(const std::string& name);
00070 void set_is_moderator(const std::string& name, const bool& is_moderator);
00071
00072
00073 void password_reminder(const std::string& name);
00074
00075
00076 std::string user_info(const std::string& name);
00077
00078
00079 void set_user_detail(const std::string& user, const std::string& detail, const std::string& value);
00080 std::string get_valid_details();
00081
00082 bool use_phpbb_encryption() const { return true; }
00083
00084 private:
00085 std::string get_hash(const std::string& user);
00086 std::string get_mail(const std::string& user);
00087
00088
00089 time_t get_lastlogin(const std::string& user);
00090 time_t get_registrationdate(const std::string& user);
00091 bool is_inactive(const std::string& user);
00092
00093 void set_lastlogin(const std::string& user, const time_t& lastlogin);
00094
00095 std::string db_name_, db_host_, db_user_, db_password_, db_users_table_, db_extra_table_;
00096
00097
00098 MYSQL_RES* db_query(const std::string& query);
00099
00100
00101 std::string db_query_to_string(const std::string& query);
00102 MYSQL *conn;
00103
00104
00105 std::string get_detail_for_user(const std::string& name, const std::string& detail);
00106 std::string get_writable_detail_for_user(const std::string& name, const std::string& detail);
00107
00108
00109 void write_detail(const std::string& name, const std::string& detail, const std::string& value);
00110
00111
00112 bool extra_row_exists(const std::string& name);
00113 };
00114
00115 #endif //FORUM_USER_HANDLER_HPP_INCLUDED