diff options
author | Loïc Blot <nerzhul@users.noreply.github.com> | 2020-04-27 06:54:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-27 06:54:48 +0200 |
commit | e564bf8eadb5aee7a90b2184b03316917c580aed (patch) | |
tree | 9d50066383ca4baf130d955f50845bf528936162 /src/database/database-postgresql.h | |
parent | 2fe4641c1e00d72c1f651b83898b093a9454d43c (diff) | |
download | minetest-e564bf8eadb5aee7a90b2184b03316917c580aed.tar.gz minetest-e564bf8eadb5aee7a90b2184b03316917c580aed.tar.bz2 minetest-e564bf8eadb5aee7a90b2184b03316917c580aed.zip |
Add PostgreSQL authentication backend (#9756)
* Add PostgreSQL authentication backend
Diffstat (limited to 'src/database/database-postgresql.h')
-rw-r--r-- | src/database/database-postgresql.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/database/database-postgresql.h b/src/database/database-postgresql.h index 5a8b89a51..340f0a7b8 100644 --- a/src/database/database-postgresql.h +++ b/src/database/database-postgresql.h @@ -36,6 +36,7 @@ public: void beginSave(); void endSave(); + void rollback(); bool initialized() const; @@ -148,3 +149,26 @@ protected: private: bool playerDataExists(const std::string &playername); }; + +class AuthDatabasePostgreSQL : private Database_PostgreSQL, public AuthDatabase +{ +public: + AuthDatabasePostgreSQL(const std::string &connect_string); + virtual ~AuthDatabasePostgreSQL() = default; + + virtual void pingDatabase() { Database_PostgreSQL::pingDatabase(); } + + virtual bool getAuth(const std::string &name, AuthEntry &res); + virtual bool saveAuth(const AuthEntry &authEntry); + virtual bool createAuth(AuthEntry &authEntry); + virtual bool deleteAuth(const std::string &name); + virtual void listNames(std::vector<std::string> &res); + virtual void reload(); + +protected: + virtual void createDatabase(); + virtual void initStatements(); + +private: + virtual void writePrivileges(const AuthEntry &authEntry); +}; |