8 #include <QTemporaryFile> 9 #include <QLoggingCategory> 21 StoreHtpasswd::~StoreHtpasswd()
28 const QString username = user.
value(QStringLiteral(
"username"));
33 qCWarning(CUTELYST_UTILS_AUTH) <<
"Failed to open temporary file for writing";
38 QFile file(m_filename);
39 if (file.
exists() && file.
open(QFile::ReadWrite | QFile::Text)) {
40 while (!file.
atEnd()) {
44 line = username.
toLatin1() +
':' + user.
value(QStringLiteral(
"password")).toLatin1().replace(
':',
',') +
'\n';
53 QByteArray line = username.
toLatin1() +
':' + user.
value(QStringLiteral(
"password")).toLatin1().replace(
':',
',') +
'\n';
58 qCWarning(CUTELYST_UTILS_AUTH) <<
"Failed to remove auth file for replacement";
62 if (!tmp.
rename(m_filename)) {
63 qCWarning(CUTELYST_UTILS_AUTH) <<
"Failed to rename temporary file";
71 const QString username = userInfo.
value(QStringLiteral(
"username"));
73 QFile file(m_filename);
74 if (file.
open(QFile::ReadOnly | QFile::Text)) {
75 while (!file.
atEnd()) {
79 ret.insert(QStringLiteral(
"username"), username);
99 {QStringLiteral(
"username"), frozenUser.
toString()}
103 #include "moc_htpasswd.cpp" void setId(const QVariant &id)
Sets the unique user id restored from the store.
void addUser(const ParamsMultiMap &user)
QList< QByteArray > split(char sep) const const
QByteArray trimmed() const const
const T & at(int i) const const
bool rename(const QString &newName)
bool exists() const const
void setAutoRemove(bool b)
QByteArray & replace(int pos, int len, const char *after)
virtual AuthenticationUser fromSession(Context *c, const QVariant &frozenUser) final
virtual QVariant forSession(Context *c, const AuthenticationUser &user) final
The Cutelyst namespace holds all public Cutelyst API.
virtual bool open(QIODevice::OpenMode mode) override
virtual bool atEnd() const const override
QByteArray toLatin1() const const
virtual void close() override
StoreHtpasswd(const QString &name, QObject *parent=nullptr)
qint64 write(const char *data, qint64 maxSize)
QString fromLatin1(const char *str, int size)
QString toString() const const
virtual AuthenticationUser findUser(Context *c, const ParamsMultiMap &userInfo) final
qint64 readLine(char *data, qint64 maxSize)
const T value(const Key &key, const T &defaultValue) const const