+ UserId addUser(const QString &user, const QString &password, const QString &authenticator = "Database") override;
+ bool updateUser(UserId user, const QString &password) override;
+ void renameUser(UserId user, const QString &newName) override;
+ UserId validateUser(const QString &user, const QString &password) override;
+ UserId getUserId(const QString &username) override;
+ QString getUserAuthenticator(const UserId userid) override;
+ UserId internalUser() override;
+ void delUser(UserId user) override;
+ void setUserSetting(UserId userId, const QString &settingName, const QVariant &data) override;
+ QVariant getUserSetting(UserId userId, const QString &settingName, const QVariant &defaultData = QVariant()) override;
+
+ /* Identity handling */
+ IdentityId createIdentity(UserId user, CoreIdentity &identity) override;
+ bool updateIdentity(UserId user, const CoreIdentity &identity) override;
+ void removeIdentity(UserId user, IdentityId identityId) override;
+ QList<CoreIdentity> identities(UserId user) override;
+
+ /* Network handling */
+ NetworkId createNetwork(UserId user, const NetworkInfo &info) override;
+ bool updateNetwork(UserId user, const NetworkInfo &info) override;
+ bool removeNetwork(UserId user, const NetworkId &networkId) override;
+ QList<NetworkInfo> networks(UserId user) override;
+ QList<NetworkId> connectedNetworks(UserId user) override;
+ void setNetworkConnected(UserId user, const NetworkId &networkId, bool isConnected) override;
+
+ /* persistent channels */
+ QHash<QString, QString> persistentChannels(UserId user, const NetworkId &networkId) override;
+ void setChannelPersistent(UserId user, const NetworkId &networkId, const QString &channel, bool isJoined) override;
+ void setPersistentChannelKey(UserId user, const NetworkId &networkId, const QString &channel, const QString &key) override;
+
+ /* persistent user states */
+ QString awayMessage(UserId user, NetworkId networkId) override;
+ void setAwayMessage(UserId user, NetworkId networkId, const QString &awayMsg) override;
+ QString userModes(UserId user, NetworkId networkId) override;
+ void setUserModes(UserId user, NetworkId networkId, const QString &userModes) override;