20 #ifndef PERMISSIONS_MANAGER
21 #define PERMISSIONS_MANAGER
29 #include "functions/action.h"
30 #include "security/permission.h"
31 #include "tools/route.h"
32 #include "tools/output_logger.h"
38 class PermissionsManager;
48 using PermissionToLoad = Poco::Tuple<std::string, std::string, std::string, int, std::string, bool, bool>;
52 std::list<Permission>& get_permissions()
54 auto& var = permissions_;
57 std::map<std::string, ActionType>& get_action_type_map()
59 auto& var = action_type_map_;
63 static void LoadPermissions_();
64 static std::_List_iterator<Permission> FindPermission_(
Tools::Route& route, std::string user, std::string action_type);
65 static bool VerifyPermission_(
Tools::Route& requested_route,
User& user, std::_List_iterator<Permission> found_permission);
68 static void FillActionTypeMap_();
71 static std::mutex mutex_;
72 static std::list<Permission> permissions_;
73 static std::map<std::string, ActionType> action_type_map_;
Definition: permissions_manager.h:46