OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
PluginAuditManager.cpp File Reference
#include "PluginAuditManager.hpp"
#include "../Utils/OrcaCloudServiceAgent.hpp"
#include "libslic3r/Utils.hpp"
#include "libslic3r/libslic3r.h"
#include "libslic3r_version.h"
#include <boost/algorithm/string/case_conv.hpp>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/filesystem/file_status.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
#include <boost/log/trivial.hpp>
#include <boost/system/error_code.hpp>
#include <algorithm>
#include <cassert>
#include <cctype>
#include <cstddef>
#include <cstdlib>
#include <future>
#include <mutex>
#include <memory>
#include <slic3r/GUI/BindDialog.hpp>
#include <slic3r/GUI/GUI_App.hpp>
#include <slic3r/plugin/PluginFsUtils.hpp>
#include <slic3r/plugin/PluginManager.hpp>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
#include <wx/app.h>
#include <wx/event.h>
#include <wx/msgdlg.h>
#include <wx/string.h>
#include <wx/thread.h>
#include "slic3r/GUI/I18N.hpp"
#include "slic3r/plugin/PluginDescriptor.hpp"
#include <Python.h>
Include dependency graph for PluginAuditManager.cpp:

Go to the source code of this file.

Namespaces

namespace  Slic3r
 |/ Copyright (c) Prusa Research 2020 - 2023 Enrico Turri @enricoturri1966 |/ |/ PrusaSlicer is released under the terms of the AGPLv3 or higher |/
namespace  Slic3r::anonymous_namespace{PluginAuditManager.cpp}
namespace  Slic3r::PluginAuditDetail

Functions

static AuditEventCategory Slic3r::event_category (const std::string &event_name)
static bool Slic3r::is_fs_category (AuditEventCategory category)
static bool Slic3r::is_network_category (AuditEventCategory category)
static std::string Slic3r::ascii_lower (std::string value)
static std::string Slic3r::trim_ascii_space (std::string value)
static std::string Slic3r::without_ipv6_brackets (std::string host)
static std::string Slic3r::host_from_authority (std::string authority)
static std::string Slic3r::network_host_from_target (const std::string &target)
static const char * Slic3r::category_name (AuditEventCategory category)
boost::filesystem::path Slic3r::anonymous_namespace{PluginAuditManager.cpp}::canonical_for_comparison (const boost::filesystem::path &path)
bool Slic3r::anonymous_namespace{PluginAuditManager.cpp}::ends_in_dangling_symlink (const boost::filesystem::path &path)
bool Slic3r::anonymous_namespace{PluginAuditManager.cpp}::same_path_component (const boost::filesystem::path &lhs, const boost::filesystem::path &rhs)
bool Slic3r::anonymous_namespace{PluginAuditManager.cpp}::suffix_inside_root (const boost::filesystem::path &canonical_candidate, const boost::filesystem::path &canonical_root, boost::filesystem::path &suffix)
bool Slic3r::is_inside_allowed_root (const boost::filesystem::path &candidate, const boost::filesystem::path &allowed_root)
static bool Slic3r::has_denied_config_extension (std::string name)
bool Slic3r::anonymous_namespace{PluginAuditManager.cpp}::show_permission_dialog (const wxString &message, const wxString &title)
PyObject * Slic3r::PluginAuditDetail::tuple_item (PyObject *args, Py_ssize_t index)
std::string Slic3r::PluginAuditDetail::python_unicode (PyObject *object)
bool Slic3r::PluginAuditDetail::python_text (PyObject *object, std::string &out)
std::string Slic3r::PluginAuditDetail::python_path (PyObject *object)
std::string Slic3r::PluginAuditDetail::python_str (PyObject *object)
void Slic3r::PluginAuditDetail::collect_stdlib_dirs ()
bool Slic3r::PluginAuditDetail::is_stdlib_frame (PyObject *frame)
std::vector< PyObject * > Slic3r::PluginAuditDetail::stack_frames ()
void Slic3r::PluginAuditDetail::take_returned_frames (std::vector< PyObject * > &held, std::vector< PyObject * > &dropped)
AuditEventCategory Slic3r::PluginAuditDetail::open_category (PyObject *args)
std::vector< std::string > Slic3r::PluginAuditDetail::audit_targets (const std::string &event_name, AuditEventCategory category, PyObject *args)
std::vector< std::string > * Slic3r::PluginAuditDetail::permission_list_for (AuditEventCategory category, bool by_event, PluginPermissions &permissions)
std::string Slic3r::PluginAuditDetail::event_grant_key (AuditEventCategory category, const std::string &event_name)
bool Slic3r::PluginAuditDetail::tree_grant_root (const std::string &grant, boost::filesystem::path &root)
std::string Slic3r::PluginAuditDetail::absolute_tree_grant (const std::string &grant)
bool Slic3r::PluginAuditDetail::fs_grant_covers (const std::string &grant, const std::string &target)
bool Slic3r::PluginAuditDetail::has_permission (AuditEventCategory category, bool by_event, const std::vector< std::string > &granted, const std::string &target)
bool Slic3r::PluginAuditDetail::has_network_permission (const PluginPermissions &permissions, const std::string &target)
bool Slic3r::PluginAuditDetail::has_any_network_permission (const PluginPermissions &permissions)
void Slic3r::PluginAuditDetail::seed_install_metadata (const PluginDescriptor &descriptor, PluginInstallState &state)
bool Slic3r::PluginAuditDetail::persist_permission (const std::string &plugin_key, PluginInstallState &state, AuditEventCategory category, bool by_event, std::vector< std::string > &permission_list, const std::string &target)
int Slic3r::PluginAuditDetail::report_denied (PluginAuditManager &mgr, const std::string &event_name, const AuditDecision &decision, const std::string &target={})
wxString Slic3r::PluginAuditDetail::audit_message (AuditEventCategory category, const wxString &plugin_name, const wxString &event_name, const wxString &target_list, size_t target_count)
bool Slic3r::PluginAuditDetail::prompt_for_targets (AuditEventCategory category, const std::string &plugin_name, const std::string &event_name, const std::vector< std::string > &unresolved)
bool Slic3r::PluginAuditDetail::prompt_for_permission_message (const wxString &message)
void Slic3r::PluginAuditDetail::persist_grant (const std::string &plugin_key, AuditEventCategory category, bool by_event, const std::vector< std::string > &keys)
static const char * Slic3r::PluginAuditDetail::audit_category_name (AuditEventCategory category)
bool Slic3r::PluginAuditDetail::request_permission (AuditEventCategory category, const std::string &plugin_key, const std::string &plugin_name, const std::string &event_name, bool by_event, const std::vector< std::string > &keys)
int Slic3r::PluginAuditDetail::decide_audited_event (PluginAuditManager &mgr, PluginInstallState &state, const std::string &plugin_key, const std::string &plugin_name, const std::string &event_name, AuditEventCategory category, const std::vector< std::string > &targets)
int Slic3r::PluginAuditDetail::audit_plugin_event (PluginAuditManager &mgr, const std::string &event_name, AuditEventCategory event_type, PyObject *args)

Variables

static const std::unordered_map< std::string, AuditEventCategory > Slic3r::audit_event_categories
static const std::unordered_set< std::string > Slic3r::operation_root_events
static std::vector< boost::filesystem::path > Slic3r::PluginAuditDetail::s_stdlib_dirs
static std::vector< boost::filesystem::path > Slic3r::PluginAuditDetail::s_site_package_dirs
static std::unordered_map< std::string, bool > Slic3r::PluginAuditDetail::s_stdlib_file_verdicts
static const std::unordered_set< std::string > Slic3r::PluginAuditDetail::two_path_fs_events
static const std::unordered_map< std::string, std::vector< Py_ssize_t > > Slic3r::PluginAuditDetail::audit_target_arg_indices
static PluginAuditManager::PermissionPrompt Slic3r::PluginAuditDetail::s_permission_prompt_for_testing
static PluginAuditManager::PermissionMessagePrompt Slic3r::PluginAuditDetail::s_permission_message_prompt_for_testing