cutelyst  5.1.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
authenticationstore.h
1 /*
2  * SPDX-FileCopyrightText: (C) 2013-2023 Daniel Nicoletti <dantti12@gmail.com>
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 #pragma once
6 
7 #include <Cutelyst/Plugins/Authentication/authentication.h>
8 
9 namespace Cutelyst {
10 
21 class CUTELYST_PLUGIN_AUTHENTICATION_EXPORT AuthenticationStore
22 {
23 public:
28  virtual bool
29  validatePassword(Context *c, const AuthenticationUser &user, const QString &password) const;
30 
35 
39  virtual ~AuthenticationStore();
40 
41 public:
45  virtual bool canAutoCreateUser() const;
46 
51  virtual AuthenticationUser autoCreateUser(Context *c, const ParamsMultiMap &userinfo) const;
52 
57  [[nodiscard]] virtual bool canAutoUpdateUser() const;
58 
63  virtual AuthenticationUser autoUpdateUser(Context *c, const ParamsMultiMap &userinfo) const;
64 
68  [[nodiscard]] virtual AuthenticationUser findUser(Context *c,
69  const ParamsMultiMap &userinfo) = 0;
70 
78  virtual QVariant forSession(Context *c, const AuthenticationUser &user);
79 
87  [[nodiscard]] virtual AuthenticationUser fromSession(Context *c, const QVariant &frozenUser);
88 };
89 
90 } // namespace Cutelyst
The Cutelyst Context.
Definition: context.h:42
Abstract class to retrieve user data from a store.
The Cutelyst namespace holds all public Cutelyst API.
Container for user data retrieved from an AuthenticationStore.