Fix error where upgrading an extension always enabled it

Upgrading disabled extensions should never enable them.
This commit is contained in:
Campbell Barton 2024-07-31 13:46:47 +10:00
parent 7b05c2b7ed
commit ef505727c6
2 changed files with 10 additions and 2 deletions

View File

@ -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):

View File

@ -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")