]> git.stg.codes - stg.git/blobdiff - projects/stargazer/user_impl.h
Merge branch 'log-unauth-reasons' into full-month-stats
[stg.git] / projects / stargazer / user_impl.h
index 2fc563dff61647387faf929db6689cfd5dd27afc..6f6030ca40d02474af7f554aa676aee30b7e349e 100644 (file)
@@ -29,6 +29,7 @@
 
 #include <ctime>
 #include <list>
+#include <vector>
 #include <string>
 #include <set>
 
@@ -182,10 +183,12 @@ public:
 
     bool            GetConnected() const { return connected; }
     time_t          GetConnectedModificationTime() const { return connected.ModificationTime(); }
-    int             GetAuthorized() const { return authorizedBy.size(); }
+    int             GetAuthorized() const { return static_cast<int>(authorizedBy.size()); }
     int             Authorize(uint32_t ip, uint32_t enabledDirs, const AUTH * auth);
-    void            Unauthorize(const AUTH * auth);
+    void            Unauthorize(const AUTH * auth,
+                                const std::string & reason = std::string());
     bool            IsAuthorizedBy(const AUTH * auth) const;
+    std::vector<std::string> GetAuthorizers() const;
 
     int             AddMessage(STG_MSG * msg);
 
@@ -197,8 +200,8 @@ public:
 
     const std::string & GetStrError() const { return errorStr; }
 
-    USER_PROPERTIES & GetProperty() { return property; };
-    const USER_PROPERTIES & GetProperty() const { return property; };
+    USER_PROPERTIES & GetProperty() { return property; }
+    const USER_PROPERTIES & GetProperty() const { return property; }
 
     void            SetDeleted() { deleted = true; }
     bool            GetDeleted() const { return deleted; }
@@ -247,6 +250,7 @@ private:
     USER_PROPERTY<uint32_t> currIP;
 
     uint32_t        lastIPForDisconnect; // User's ip after unauth but before disconnect
+    std::string     lastDisconnectReason;
 
     time_t          pingTime;