Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Parborg <darkdefende@gmail.com>2019-10-30 21:16:53 +0300
committerSebastian Parborg <darkdefende@gmail.com>2019-10-30 21:23:36 +0300
commitb1b0e56a72abf843ddc86288db6db7f3ec4be9aa (patch)
tree4c5ef83bccd9e1c0268d817cc77e825aec3be208 /release/scripts/modules/bpy
parentace7ec785d046a25b83eca660d4fa2d47887bc97 (diff)
Fix T59065: Blender default keyset is deletable by user!
Previously, you could delete presets that were part of the blender default install. Now we check if the preset file resides in the bundled file paths. If so, prevent deletion of the preset. Reviewed By: Campbell Differential Revision: http://developer.blender.org/D4522
Diffstat (limited to 'release/scripts/modules/bpy')
-rw-r--r--release/scripts/modules/bpy/utils/__init__.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/release/scripts/modules/bpy/utils/__init__.py b/release/scripts/modules/bpy/utils/__init__.py
index 04aaa7bd69d..879275619ce 100644
--- a/release/scripts/modules/bpy/utils/__init__.py
+++ b/release/scripts/modules/bpy/utils/__init__.py
@@ -456,6 +456,27 @@ def preset_paths(subdir):
return dirs
+def is_path_builtin(path):
+ """
+ Returns True if the path in question in one of the built in paths used by blender.
+
+ :arg path: Path you want to check if it is in the built in settings directory
+ """
+ search_path = _os.path.abspath(path)
+ user_path = resource_path('USER')
+
+ for res in ('SYSTEM', 'LOCAL'):
+ parent_path = resource_path(res)
+ if not parent_path or parent_path == user_path:
+ # Make sure that the current path is not empty string and that it is
+ # not the same as the user config path. IE "~/.config/blender" on linux
+ # This can happen on portable installs.
+ continue
+
+ if _os.path.samefile(_os.path.commonpath([parent_path]), _os.path.commonpath([parent_path, path])):
+ return True
+
+ return False
def smpte_from_seconds(time, fps=None, fps_base=None):
"""