cutelyst  3.9.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
roleacl.h
1 /*
2  * SPDX-FileCopyrightText: (C) 2014-2022 Daniel Nicoletti <dantti12@gmail.com>
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 #ifndef ROLEACL_H
6 #define ROLEACL_H
7 
8 #include <Cutelyst/component.h>
9 #include <Cutelyst/componentfactory.h>
10 #include <Cutelyst/context.h>
11 #include <Cutelyst/cutelyst_global.h>
12 
13 #include <QtCore/QVariantHash>
14 
15 namespace Cutelyst {
16 
17 class RoleACLPrivate;
18 class CUTELYST_PLUGIN_ACTION_ROLEACL_EXPORT RoleACL final : public Component
19 {
20  Q_OBJECT
21  Q_DECLARE_PRIVATE(RoleACL)
22 public:
26  explicit RoleACL(QObject *parent = nullptr);
27 
31  virtual Modifiers modifiers() const override;
32 
36  virtual bool init(Application *application, const QVariantHash &args) override;
37 
41  virtual bool aroundExecute(Context *c, QStack<Component *> stack) override;
42 
46  bool canVisit(Context *c) const;
47 
48 protected:
52  virtual bool dispatcherReady(const Dispatcher *dispatcher, Controller *controller) override;
53 };
54 
55 class RoleACLFactory final
56  : public QObject
57  , public ComponentFactory
58 {
59  Q_OBJECT
60  Q_PLUGIN_METADATA(IID "org.cutelyst.ComponentFactory" FILE "metadata.json")
62 public:
63  virtual Component *createComponent(QObject *parent) override { return new RoleACL(parent); }
64 };
65 
66 } // namespace Cutelyst
67 
68 #endif // ROLEACL_H
The Cutelyst Component base class.
Definition: component.h:25
The Cutelyst Context.
Definition: context.h:38
Cutelyst Controller base class
Definition: controller.h:87
User role-based authorization action class.
Definition: roleacl.h:18
Q_OBJECTQ_OBJECT
The Cutelyst namespace holds all public Cutelyst API.
Definition: Mainpage.dox:7
virtual Component * createComponent(QObject *parent) override
Definition: roleacl.h:63
Q_INTERFACES(...)
The Cutelyst Application.
Definition: application.h:42
QObject * parent() const const
The Cutelyst Dispatcher.
Definition: dispatcher.h:27