diff options
author | Michael Wood <michael.g.wood@intel.com> | 2016-02-02 17:44:01 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-02-10 13:29:21 +0000 |
commit | cb6d290d0b93e0f6673d315075152fcef8a4b416 (patch) | |
tree | 04e850e32ac03f3b8532e03b8f8480acddf0da0b /bitbake | |
parent | 5634a251ce6b25beb948976433ba0a6443be4e09 (diff) | |
download | poky-cb6d290d0b93e0f6673d315075152fcef8a4b416.tar.gz |
bitbake: toaster: API CustomImageRecipe check the recipe name supplied is valid
Check that the name for a new CustomImageRecipe doesn't already exist in
the project or in the database of existing recipes (e.g. from the layer
index). Also restrict the characters entered for the recipe naming
convention.
(Bitbake rev: f290d428460a07e73050ff613bc222cc8c04f5ec)
Signed-off-by: Michael Wood <michael.g.wood@intel.com>
Signed-off-by: brian avery <avery.brian@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rwxr-xr-x | bitbake/lib/toaster/toastergui/views.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index 65b38d0645..851e962c05 100755 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py | |||
@@ -2362,6 +2362,27 @@ if True: | |||
2362 | 2362 | ||
2363 | # create custom recipe | 2363 | # create custom recipe |
2364 | try: | 2364 | try: |
2365 | |||
2366 | # Only allowed chars in name are a-z, 0-9 and - | ||
2367 | if re.search(r'[^a-z|0-9|-]', request.POST["name"]): | ||
2368 | return {"error": "invalid-name"} | ||
2369 | |||
2370 | # Are there any recipes with the name already? | ||
2371 | for existing_recipe in Recipe.objects.filter( | ||
2372 | name=request.POST["name"]): | ||
2373 | try: | ||
2374 | ci = CustomImageRecipe.objects.get(pk=existing_recipe.pk) | ||
2375 | if ci.project == params["project"]: | ||
2376 | return {"error": "already-exists" } | ||
2377 | else: | ||
2378 | # It is a CustomImageRecipe but not in our project | ||
2379 | # this is fine so | ||
2380 | continue | ||
2381 | except: | ||
2382 | # It isn't a CustomImageRecipe so is a recipe from | ||
2383 | # another source. | ||
2384 | return {"error": "already-exists" } | ||
2385 | |||
2365 | # create layer 'Custom layer' and verion if needed | 2386 | # create layer 'Custom layer' and verion if needed |
2366 | layer = Layer.objects.get_or_create( | 2387 | layer = Layer.objects.get_or_create( |
2367 | name="toaster-custom-images", | 2388 | name="toaster-custom-images", |