diff --git a/cookbook/tests/api/test_api_space.py b/cookbook/tests/api/test_api_space.py index 6ade2cfdc..b01d0961f 100644 --- a/cookbook/tests/api/test_api_space.py +++ b/cookbook/tests/api/test_api_space.py @@ -15,9 +15,9 @@ DETAIL_URL = 'api:space-detail' @pytest.mark.parametrize("arg", [ ['a_u', 403, 0], ['g1_s1', 403, 0], - ['u1_s1', 403, 0], + ['u1_s1', 200, 1], ['a1_s1', 200, 1], - ['a2_s1', 200, 0], + ['a2_s1', 200, 1], ]) def test_list_permission(arg, request, space_1, a1_s1): space_1.created_by = auth.get_user(a1_s1) @@ -29,16 +29,6 @@ def test_list_permission(arg, request, space_1, a1_s1): assert len(json.loads(result.content)) == arg[2] -def test_list_permission_owner(u1_s1, a1_s1, space_1): - space_1.created_by = auth.get_user(a1_s1) - space_1.save() - assert len(json.loads(a1_s1.get(reverse(LIST_URL)).content)) == 1 - assert u1_s1.get(reverse(LIST_URL)).status_code == 403 - space_1.created_by = auth.get_user(u1_s1) - space_1.save() - assert u1_s1.get(reverse(LIST_URL)).status_code == 403 - - @pytest.mark.parametrize("arg", [ ['a_u', 403], ['g1_s1', 403], diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 55926ce81..9f9f64204 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -60,7 +60,7 @@ from cookbook.helper.permission_helper import (CustomIsAdmin, CustomIsOwner, CustomIsSpaceOwner, CustomIsUser, group_required, is_space_owner, switch_user_active_space, above_space_limit, CustomRecipePermission, CustomUserPermission, - CustomTokenHasReadWriteScope, CustomTokenHasScope, has_group_permission) + CustomTokenHasReadWriteScope, CustomTokenHasScope, has_group_permission, IsReadOnlyDRF) from cookbook.helper.recipe_search import RecipeFacet, RecipeSearch from cookbook.helper.recipe_url_import import get_from_youtube_scraper, get_images_from_soup, clean_dict from cookbook.helper.scrapers.scrapers import text_scraper @@ -402,11 +402,11 @@ class GroupViewSet(viewsets.ModelViewSet): class SpaceViewSet(viewsets.ModelViewSet): queryset = Space.objects serializer_class = SpaceSerializer - permission_classes = [CustomIsOwner & CustomIsAdmin & CustomTokenHasReadWriteScope] + permission_classes = [IsReadOnlyDRF & CustomIsUser | CustomIsOwner & CustomIsAdmin & CustomTokenHasReadWriteScope] http_method_names = ['get', 'patch'] def get_queryset(self): - return self.queryset.filter(id=self.request.space.id, created_by=self.request.user) + return self.queryset.filter(id=self.request.space.id) class UserSpaceViewSet(viewsets.ModelViewSet): diff --git a/vue/src/i18n.js b/vue/src/i18n.js index 63dd34b0d..36381c8e4 100644 --- a/vue/src/i18n.js +++ b/vue/src/i18n.js @@ -4,6 +4,8 @@ import VueI18n from 'vue-i18n' Vue.use(VueI18n) function loadLocaleMessages () { + const start_time = Date.now(); + console.log('started loading locale messages') const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.json$/i) const messages = {} locales.keys().forEach(key => { @@ -13,6 +15,7 @@ function loadLocaleMessages () { messages[locale] = locales(key) } }) + console.log('finished loading messages in ', Date.now() - start_time, ' ms') return messages } diff --git a/vue/src/locales/de.json b/vue/src/locales/de.json index 7a5f1f4ca..f307d1360 100644 --- a/vue/src/locales/de.json +++ b/vue/src/locales/de.json @@ -140,6 +140,7 @@ "advanced_search_settings": "Erweiterte Sucheinstellungen", "View": "Ansicht", "Recipes": "Rezepte", + "Welcome": "Willkommen", "Move": "Verschieben", "Merge": "Zusammenführen", "Parent": "Eltern", diff --git a/vue/src/locales/en.json b/vue/src/locales/en.json index 7cf2c3da0..2285e481a 100644 --- a/vue/src/locales/en.json +++ b/vue/src/locales/en.json @@ -148,6 +148,7 @@ "Search Settings": "Search Settings", "View": "View", "Recipes": "Recipes", + "Welcome": "Welcome", "Move": "Move", "Merge": "Merge", "Parent": "Parent",