diff --git a/scripts/addons_core/bl_pkg/bl_extension_ops.py b/scripts/addons_core/bl_pkg/bl_extension_ops.py index fe6db77227b..b1026ac1377 100644 --- a/scripts/addons_core/bl_pkg/bl_extension_ops.py +++ b/scripts/addons_core/bl_pkg/bl_extension_ops.py @@ -56,6 +56,9 @@ rna_prop_enable_on_install = BoolProperty( name="Enable on Install", description="Enable after installing", default=True, + # This is done as "enabling" has security implications (running code after the action). + # Using the last value would mean an action that isn't expected to enable the extension might unintentionally do so. + options={'SKIP_SAVE'} ) rna_prop_enable_on_install_type_map = { "add-on": "Enable Add-on", @@ -1845,6 +1848,7 @@ class EXTENSIONS_OT_package_upgrade_all(Operator, _ExtCmdMixIn): if pkg_manifest_local is None: continue + repo_item = repos_all[repo_index] for pkg_id, item_remote in pkg_manifest_remote.items(): item_local = pkg_manifest_local.get(pkg_id) if item_local is None: @@ -1858,8 +1862,11 @@ class EXTENSIONS_OT_package_upgrade_all(Operator, _ExtCmdMixIn): packages_to_upgrade[repo_index].append(pkg_id) package_count += 1 - if packages_to_upgrade[repo_index]: - handle_addons_info.append((repos_all[repo_index], list(packages_to_upgrade[repo_index]))) + if (pkg_id_sequence_upgrade := _preferences_pkg_id_sequence_filter_enabled( + repo_item, + packages_to_upgrade[repo_index], + )): + handle_addons_info.append((repo_item, pkg_id_sequence_upgrade)) cmd_batch = [] for repo_index, pkg_id_sequence in enumerate(packages_to_upgrade): diff --git a/scripts/addons_core/bl_pkg/bl_extension_ui.py b/scripts/addons_core/bl_pkg/bl_extension_ui.py index 455736f3abd..8973774b72c 100644 --- a/scripts/addons_core/bl_pkg/bl_extension_ui.py +++ b/scripts/addons_core/bl_pkg/bl_extension_ui.py @@ -1323,6 +1323,7 @@ def extension_draw_item( props = row_right.operator("extensions.package_install", text="Update") props.repo_index = repo_index props.pkg_id = pkg_id + props.enable_on_install = is_enabled del props else: props = row_right.operator("extensions.package_install", text="Install")