Woocommerce and some fixes

This commit is contained in:
Diego Calvo
2021-04-08 15:12:05 +02:00
parent 06bababfa6
commit 2ecab694b9
10 changed files with 1456 additions and 26 deletions

View File

@@ -1,7 +1,25 @@
from rest_framework import permissions
class IsCreator(permissions.BasePermission):
class IsCompanyOwner(permissions.BasePermission):
"""
Grant permission if request.user.company same as obj.id
"""
def has_object_permission(self, request, view, obj):
if obj is not None:
# allow if authenticated and method is safe
if request.method in permissions.SAFE_METHODS:
return True
# admins always have permission
if request.user.is_staff is True:
return True
# permission if user is the object's creator
return obj == request.user.company
return False
class IsProductOwner(permissions.BasePermission):
"""
Grant permission if request.user same as obj.creator
"""
@@ -16,10 +34,9 @@ class IsCreator(permissions.BasePermission):
if request.user.is_staff is True:
return True
# permission if user is the object's creator
return obj.creator == request.user
return obj.company == request.user.company
return False
class IsStaff(permissions.BasePermission):
"""
Grant permission if request.user.is_staff is True

View File

@@ -47,6 +47,7 @@ urlpatterns = [
path('api/v1/companies/sample/', company_views.random_company_sample , name='company-sample'),
path('api/v1/search/companies/', company_views.CompanySearchViewSet.as_view({'get': 'list'}) , name='company-search'),
path('api/v1/purchase_email/', product_views.purchase_email, name='purchase-email'),
path('api/v1/sync_shop/', product_views.sync_shop, name='purchase-email'),
path('api/v1/products/all_categories/', product_views.all_categories, name='all-categories'),
path('api/v1/stats/me/', stat_views.track_user, name='user-tracker'),
path('api/v1/autocomplete/category-tag/', product_views.CategoryTagAutocomplete.as_view(), name='category-autocomplete'),