Uninstall plugins from settings
This commit is contained in:
@@ -19,6 +19,7 @@ pub enum PluginAuditAction {
|
||||
Installed,
|
||||
Enabled,
|
||||
Disabled,
|
||||
Uninstalled,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
@@ -119,6 +120,18 @@ impl BrowserCore {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn uninstall_plugin(&mut self, plugin_id: &PluginId) -> Result<(), CoreError> {
|
||||
let plugin_index = self
|
||||
.installed_plugins
|
||||
.iter()
|
||||
.position(|plugin| plugin.id() == plugin_id)
|
||||
.ok_or_else(|| CoreError::PluginNotFound { id: plugin_id.clone() })?;
|
||||
|
||||
self.installed_plugins.remove(plugin_index);
|
||||
self.record_plugin_audit_event(plugin_id.clone(), PluginAuditAction::Uninstalled);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn record_plugin_audit_event(&mut self, plugin_id: PluginId, action: PluginAuditAction) {
|
||||
self.plugin_audit_events.push(PluginAuditEvent::record(
|
||||
plugin_id,
|
||||
|
||||
Reference in New Issue
Block a user