From e375abaaf8c99e39e54b53f56ed1c7129994357a Mon Sep 17 00:00:00 2001 From: Cerapter Date: Tue, 16 Mar 2021 20:35:20 +0100 Subject: [PATCH] Document DBManager --- doxygen/akashi.qch | Bin 577536 -> 581632 bytes include/db_manager.h | 148 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 148 insertions(+) diff --git a/doxygen/akashi.qch b/doxygen/akashi.qch index 63a6a55a48924d6c562de14e5d964beea110ae03..67e3de8df7a013441061ea58f6d75203ff2fb4f7 100644 GIT binary patch delta 45483 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

!wYK1TtGaltb*rOL>|AO16 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 delta 39289 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/!EyI(SVG$BA(J?>f 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 Pfufs>gNNV$quT!f{}DCn diff --git a/include/db_manager.h b/include/db_manager.h index 150d751..1f8bb8d 100644 --- a/include/db_manager.h +++ b/include/db_manager.h @@ -27,31 +27,179 @@ #include #include +/** + * @brief A class used to handle database interaction. + * + * @details This class offers a layer above the QSqlDatabase class to manage semi-critical data. + * Contrast with Logger, which dumbs its data into simple `.log` files. + * + * The DBManager handles user data, keeping track of only 'special' persons who are handled + * differently than the average user. + * This comes in two forms, when the user's client is banned, and when the user is a moderator. + */ class DBManager{ public: + /** + * @brief Constructor for the DBManager class. + * + * @details Creates a database file at `config/akashi.db`, and creates two tables in it: + * one for banned clients, and one for authorised users / moderators. + */ DBManager(); + + /** + * @brief Destructor for the DBManager class. Closes the underlying database. + */ ~DBManager(); + /** + * @brief Checks if there is a record in the Bans table with the given IP address. + * + * @param ip The IP address to check if it is banned. + * + * @return True if the query could return at least one such record. + */ bool isIPBanned(QHostAddress ip); + + /** + * @brief Checks if there is a record in the Bans table with the given hardware ID. + * + * @param hdid The hardware ID to check if it is banned. + * + * @return True if the query could return at least one such record. + */ bool isHDIDBanned(QString hdid); + /** + * @brief Returns the reason the given IP address was banned with. + * + * @param ip The IP address whose ban reason needs to be returned. + * + * @return The ban reason if the IP address is actually banned, + * or `"Ban reason not found."` if the IP address is not actually banned. + */ QString getBanReason(QHostAddress ip); + + /** + * @brief Overloaded function for getBanReason(QHostAddress). Returns based on HDID instead of IP. + * + * @param hdid The hardware ID whose ban reason needs to be returned. + * + * @return The ban reason if the hardware ID is actually banned, + * or `"Ban reason not found."` if the hardware ID is not actually banned. + */ QString getBanReason(QString hdid); + /** + * @brief Records a ban for the give IPID-IP address-hardware ID combination. + * + * @param ipid The IPID to ban. + * @param ip The IP address to ban. The source should be the same as with the IPID + * (i.e., they should point to the same user). + * @param hdid The hardware ID to ban. Once again, should point to the same user as the IPID and the IP address. + * @param time The number of seconds to ban the target for. + * @param reason The reason the target was banned. + */ void addBan(QString ipid, QHostAddress ip, QString hdid, unsigned long time, QString reason); + /** + * @brief Creates an authorised user. + * + * @param username The username clients can use to log in with. + * @param salt The salt to obfuscate the password with. + * @param password The user's password. + * @param acl The user's authority bitflag -- what special privileges does the user have. + * + * @return False if the user already exists, true if the user was successfully created. + * + * @see AOClient::cmdLogin() and AOClient::cmdLogout() for the username and password's contexts. + * @see AOClient::ACLFlags for the potential special privileges a user may have. + */ bool createUser(QString username, QString salt, QString password, unsigned long long acl); + + /** + * @brief Gets the privileges of a given user. + * + * @param moderator_name The authorised user's name. + * + * @return `0` if `moderator_name` is empty, `0` if such user does not exist in the Users table, + * or the primitive representation of an AOClient::ACLFlags privilege matrix if neither of the above are true. + * + * @see AOClient::ACLFlags for the potential privileges a user may have. + */ unsigned long long getACL(QString moderator_name); + + /** + * @brief Authenticates a given user. + * + * @param username The username of the user trying to log in. + * @param password The password of the user. + * + * @return True if the salted version of the inputted password matches the one stored in the user's record, + * false if the user does not exist in the records, of if the passwords don't match. + */ bool authenticate(QString username, QString password); + + /** + * @brief Updates the privileges of a given user. + * + * @details This function can add or remove privileges as needed. + * `acl` determines what privileges are modified, while `mode` determines whether said privileges are + * added or removed. + * + * `acl` **is not** the user's current privileges *or* the sum privileges you want for the user at the end + * -- it is the 'difference' between the user's current and desired privileges. + * + * If `acl` is `"NONE"`, then no matter the mode, the user's privileges are cleared. + * + * For some practical examples, consult this example table: + * + * | Starting privileges | `acl` | `mode` | Resulting privileges | + * | ------------------: | :---------: | :-----: | :------------------- | + * | KICK | BAN | `TRUE` | KICK, BAN | + * | BAN, KICK | BAN | `TRUE` | KICK, BAN | + * | KICK | BAN, BGLOCK | `TRUE` | KICK, BAN, BGLOCK | + * | BGLOCK, BAN, KICK | NONE | `TRUE` | NONE | + * | KICK | BAN | `FALSE` | KICK | + * | BAN, KICK | BAN | `FALSE` | KICK | + * | BGLOCK, BAN, KICK | BAN, BGLOCK | `FALSE` | KICK | + * | BGLOCK, BAN, KICK | NONE | `FALSE` | NONE | + * + * @param username The username of the user whose privileges should be updated. + * @param acl The primitive representation of the privilege matrix being modified. + * @param mode If true, the privileges described in `acl` are *added* to the user; + * if false, they are removed instead. + * + * @return True if the modification was successful, false if the user does not exist in the records. + */ bool updateACL(QString username, unsigned long long acl, bool mode); + + /** + * @brief Returns a list of the recorded users' usernames, ordered by ID. + * + * @return See brief description. + */ QStringList getUsers(); private: + /** + * @brief The name of the database connection driver. + */ const QString DRIVER; + + /** + * @note Unused. + */ const QString CONN_NAME; + /** + * @note Unused. + */ void openDB(); + /** + * @brief The backing database that stores user details. + */ QSqlDatabase db; };