21 #include <QTemporaryFile>
22 #include <QLoggingCategory>
34 StoreHtpasswd::~StoreHtpasswd()
41 const QString username = user.value(QStringLiteral(
"username"));
43 QTemporaryFile tmp(m_filename + QLatin1String(
"-XXXXXXX"));
44 tmp.setAutoRemove(
false);
46 qCWarning(CUTELYST_UTILS_AUTH) <<
"Failed to open temporary file for writing";
51 QFile file(m_filename);
52 if (file.exists() && file.open(QFile::ReadWrite | QFile::Text)) {
53 while (!file.atEnd()) {
54 QByteArray line = file.readLine();
55 QByteArrayList parts = line.split(
':');
56 if (!wrote && parts.size() >= 2 && parts.first() == username.toLatin1()) {
57 line = username.toLatin1() +
':' + user.value(QStringLiteral(
"password")).toLatin1().replace(
':',
',') +
'\n';
66 QByteArray line = username.toLatin1() +
':' + user.value(QStringLiteral(
"password")).toLatin1().replace(
':',
',') +
'\n';
70 if (file.exists() && !file.remove()) {
71 qCWarning(CUTELYST_UTILS_AUTH) <<
"Failed to remove auth file for replacement";
75 if (!tmp.rename(m_filename)) {
76 qCWarning(CUTELYST_UTILS_AUTH) <<
"Failed to rename temporary file";
83 const QString username = userInfo.value(QStringLiteral(
"username"));
85 QFile file(m_filename);
86 if (file.open(QFile::ReadOnly | QFile::Text)) {
87 while (!file.atEnd()) {
88 QByteArray line = file.readLine();
89 QByteArrayList parts = line.trimmed().split(
':');
90 if (parts.size() >= 2 && !parts.first().startsWith(
'#') && parts.first() == username.toLatin1()) {
91 ret.insert(QStringLiteral(
"username"), username);
93 QByteArray password = parts.at(1);
94 ret.insert(QStringLiteral(
"password"), QString::fromLatin1(password.replace(
',',
':')));
110 {QStringLiteral(
"username"), frozenUser.toString()}
114 #include "moc_htpasswd.cpp"