pandemonium_engine/modules/web/http/web_permission.h

44 lines
1.1 KiB
C++
Raw Normal View History

#ifndef WEB_PERMISSION_H
#define WEB_PERMISSION_H
2022-06-26 17:23:40 +02:00
#include "core/ustring.h"
#include "core/variant/variant.h"
#include "core/reference.h"
2022-06-26 17:23:40 +02:00
class WebServerRequest;
class WebPermission : public Reference {
2022-06-26 17:23:40 +02:00
GDCLASS(WebPermission, Reference);
public:
enum WebPermissions {
WEB_PERMISSION_VIEW = 1 << 0,
WEB_PERMISSION_CREATE = 1 << 1,
WEB_PERMISSION_EDIT = 1 << 2,
WEB_PERMISSION_DELETE = 1 << 3,
WEB_PERMISSION_ALL = WEB_PERMISSION_VIEW | WEB_PERMISSION_CREATE | WEB_PERMISSION_EDIT | WEB_PERMISSION_DELETE,
WEB_PERMISSION_NONE = 0,
};
//like in middlewate returns whether it handled the request or not
2022-06-26 17:23:40 +02:00
bool activate(const Ref<WebServerRequest> &request);
int get_permissions(const Ref<WebServerRequest> &request);
void handle_view_permission_missing(const Ref<WebServerRequest> &request);
virtual bool _activate(Ref<WebServerRequest> request);
virtual int _get_permissions(Ref<WebServerRequest> request);
virtual void _handle_view_permission_missing(Ref<WebServerRequest> request);
WebPermission();
~WebPermission();
2022-06-26 17:23:40 +02:00
protected:
static void _bind_methods();
};
2022-06-26 17:23:40 +02:00
VARIANT_ENUM_CAST(WebPermission::WebPermissions);
#endif