summaryrefslogtreecommitdiff
path: root/src/database/database-postgresql.h
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2020-04-27 06:54:48 +0200
committerGitHub <noreply@github.com>2020-04-27 06:54:48 +0200
commite564bf8eadb5aee7a90b2184b03316917c580aed (patch)
tree9d50066383ca4baf130d955f50845bf528936162 /src/database/database-postgresql.h
parent2fe4641c1e00d72c1f651b83898b093a9454d43c (diff)
downloadminetest-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.h24
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);
+};