On first run of the Quassel core, it will wait for a client to connect
and present a first-run wizard that will allow you to create the database
-and one admin user for the core-side storage. Note that Quassel does not
-support the administration of user accounts yet, this includes adding
-more users, changing passwords and so on.
-However, you can add more users, or change passwords of existing ones,
-using manageusers.py to be found in the scripts/ directory.
+and one admin user for the core-side storage.
+
+To add more users, run: `quasselcore --add-user`
+To change the password of an existing user: `quasselcore --change-userpass=username`
+The manageusers.py script is deprecated.
IRC is the preferred means of getting in touch with the developers.
The Quassel IRC Team can be contacted on Freenode/#quassel (or
QList<ClientBufferViewConfig *> bufferViewConfigList = clientBufferViewManager->clientBufferViewConfigs();
foreach(ClientBufferViewConfig *bufferViewConfig, bufferViewConfigList) {
if (bufferViewConfig->temporarilyRemovedBuffers().contains(newBufId)) {
- bufferViewConfig->addBuffer(newBufId, bufferViewConfig->bufferList().length());
+ bufferViewConfig->requestAddBuffer(newBufId, bufferViewConfig->bufferList().length());
//if (bufferViewConfig->sortAlphabetically()) {
// TODO we need to trigger a sort here, but can't reach the model required
// to get a bufferviewfilter, as the bufferviewmanager only managers configs
struct ClientRegistered : public HandshakeMessage
{
- inline ClientRegistered(quint32 coreFeatures, bool coreConfigured, const QVariantList &backendInfo, bool sslSupported, const QDateTime &coreStartTime)
+ inline ClientRegistered(quint32 coreFeatures, bool coreConfigured, const QVariantList &backendInfo, bool sslSupported, const QString &coreInfo)
: coreFeatures(coreFeatures)
, coreConfigured(coreConfigured)
, backendInfo(backendInfo)
, sslSupported(sslSupported)
- , coreStartTime(coreStartTime)
+ , coreInfo(coreInfo)
{}
quint32 coreFeatures;
// this is only used by the LegacyProtocol in compat mode
bool sslSupported;
- QDateTime coreStartTime;
+ QString coreInfo;
};
}
else if (msgType == "ClientInitAck") {
- handle(ClientRegistered(m["CoreFeatures"].toUInt(), m["Configured"].toBool(), m["StorageBackends"].toList(), false, QDateTime())); // SupportsSsl and coreStartTime obsolete
+ handle(ClientRegistered(m["CoreFeatures"].toUInt(), m["Configured"].toBool(), m["StorageBackends"].toList(), false, QString())); // SupportsSsl and coreInfo obsolete
}
else if (msgType == "CoreSetupData") {
***************************************************************************/
#include <QHostAddress>
+#include <QDataStream>
#include <QTcpSocket>
#include "legacypeer.h"
-#include "quassel.h"
/* version.inc is no longer used for this */
const uint protocolVersion = 10;
socket()->setProperty("UseCompression", true);
#endif
- handle(ClientRegistered(m["CoreFeatures"].toUInt(), m["Configured"].toBool(), m["StorageBackends"].toList(), m["SupportSsl"].toBool(), QDateTime()));
+ handle(ClientRegistered(m["CoreFeatures"].toUInt(), m["Configured"].toBool(), m["StorageBackends"].toList(), m["SupportSsl"].toBool(), QString()));
}
else if (msgType == "CoreSetupData") {
m["SupportsCompression"] = socket()->property("UseCompression").toBool(); // this property gets already set in the ClientInit handler
// This is only used for old v10 clients (pre-0.5)
- int uptime = msg.coreStartTime.secsTo(QDateTime::currentDateTime().toUTC());
- int updays = uptime / 86400; uptime %= 86400;
- int uphours = uptime / 3600; uptime %= 3600;
- int upmins = uptime / 60;
- m["CoreInfo"] = tr("<b>Quassel Core Version %1</b><br>"
- "Built: %2<br>"
- "Up %3d%4h%5m (since %6)").arg(Quassel::buildInfo().fancyVersionString)
- .arg(Quassel::buildInfo().buildDate)
- .arg(updays).arg(uphours, 2, 10, QChar('0')).arg(upmins, 2, 10, QChar('0')).arg(msg.coreStartTime.toString(Qt::TextDate));
+ m["CoreInfo"] = msg.coreInfo;
m["LoginEnabled"] = m["Configured"] = msg.coreConfigured;
if (!configured)
backends = Core::backendInfo();
- // useSsl and startTime are only used for the legacy protocol
- _peer->dispatch(ClientRegistered(Quassel::features(), configured, backends, useSsl, Core::instance()->startTime()));
+ int uptime = Core::instance()->startTime().secsTo(QDateTime::currentDateTime().toUTC());
+ int updays = uptime / 86400; uptime %= 86400;
+ int uphours = uptime / 3600; uptime %= 3600;
+ int upmins = uptime / 60;
+ QString coreInfo = tr("<b>Quassel Core Version %1</b><br>"
+ "Built: %2<br>"
+ "Up %3d%4h%5m (since %6)").arg(Quassel::buildInfo().fancyVersionString)
+ .arg(Quassel::buildInfo().buildDate)
+ .arg(updays).arg(uphours, 2, 10, QChar('0')).arg(upmins, 2, 10, QChar('0')).arg(Core::instance()->startTime().toString(Qt::TextDate));
+
+ // useSsl and coreInfo are only used for the legacy protocol
+ _peer->dispatch(ClientRegistered(Quassel::features(), configured, backends, useSsl, coreInfo));
if (_legacy && useSsl)
startSsl();