cutelyst  5.1.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
authenticationuser.h
1 /*
2  * SPDX-FileCopyrightText: (C) 2013-2022 Daniel Nicoletti <dantti12@gmail.com>
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 #ifndef AUTHENTICATIONUSER_H
6 #define AUTHENTICATIONUSER_H
7 
8 #include <Cutelyst/Plugins/authentication_export.h>
9 #include <Cutelyst/paramsmultimap.h>
10 #include <Cutelyst/plugin.h>
11 
12 #include <QDataStream>
13 #include <QVariantMap>
14 
15 namespace Cutelyst {
16 
17 class AuthenticationRealm;
18 class Context;
19 
30 class CUTELYST_PLUGIN_AUTHENTICATION_EXPORT AuthenticationUser
31 {
32  Q_GADGET
33 public:
38 
42  explicit AuthenticationUser(const QVariant &id);
43 
47  virtual ~AuthenticationUser();
48 
52  [[nodiscard]] QVariant id() const;
53 
57  void setId(const QVariant &id);
58 
62  [[nodiscard]] bool isNull() const;
63 
67  [[nodiscard]] QString authRealm();
68 
72  void setAuthRealm(const QString &authRealm);
73 
81  [[nodiscard]] bool checkPassword(Context *c,
82  AuthenticationRealm *realm,
83  const QString &password,
84  const QString &passwordField = QStringLiteral("password"));
85 
89  [[nodiscard]] inline QVariantMap data() const;
90 
94  inline void setData(const QVariantMap &data);
95 
102  inline void insert(const QString &key, const QVariant &value);
103 
110  [[nodiscard]] inline QVariant value(const QString &key,
111  const QVariant &defaultValue = QVariant()) const;
112 
113  operator QVariant() const { return QVariant::fromValue(m_data); }
114 
115 protected:
116  QVariantMap m_data;
117 };
118 
119 QVariantMap AuthenticationUser::data() const
120 {
121  return m_data;
122 }
123 
124 void AuthenticationUser::setData(const QVariantMap &data)
125 {
126  m_data = data;
127 }
128 
129 void AuthenticationUser::insert(const QString &key, const QVariant &value)
130 {
131  m_data.insert(key, value);
132 }
133 
134 QVariant AuthenticationUser::value(const QString &key, const QVariant &defaultValue) const
135 {
136  return m_data.value(key, defaultValue);
137 }
138 
139 } // namespace Cutelyst
140 
141 Q_DECLARE_METATYPE(Cutelyst::AuthenticationUser)
142 QDataStream &operator<<(QDataStream &out, const Cutelyst::AuthenticationUser &myObj);
143 QDataStream &operator>>(QDataStream &in, Cutelyst::AuthenticationUser &myObj);
144 
145 QDebug CUTELYST_PLUGIN_AUTHENTICATION_EXPORT operator<<(QDebug dbg,
146  const Cutelyst::AuthenticationUser &user);
147 
148 #endif // AUTHENTICATIONUSER_H
void insert(const QString &key, const QVariant &value)
QVariant fromValue(T &&value)
Combines user store and credential validation into a named realm.
void setData(const QVariantMap &data)
The Cutelyst Context.
Definition: context.h:42
The Cutelyst namespace holds all public Cutelyst API.
Container for user data retrieved from an AuthenticationStore.
QVariant value(const QString &key, const QVariant &defaultValue=QVariant()) const