added endpoint to get role types, change endpoint URI ( from /account/role-tab/ to /account/role/tab/)

This commit is contained in:
Anatoly 2020-01-22 14:50:00 +03:00
parent 0023fcb47b
commit b989762568
3 changed files with 18 additions and 4 deletions

View File

@ -86,8 +86,14 @@ class Role(ProjectBaseMixin):
@classmethod @classmethod
def role_names(cls): def role_names(cls):
return [role_name._proxy____args[0] return [role_name for role_name in dict(cls.ROLE_CHOICES).values()]
for role_name in dict(cls.ROLE_CHOICES).values()]
@classmethod
def role_types(cls):
roles = []
for role_id, role in dict(cls.ROLE_CHOICES).items():
roles.append({'id': role_id, 'name': role})
return roles
@classmethod @classmethod
def role_condition_expressions(cls) -> list: def role_condition_expressions(cls) -> list:

View File

@ -7,7 +7,8 @@ app_name = 'account'
urlpatterns = [ urlpatterns = [
path('role/', views.RoleListView.as_view(), name='role-list-create'), path('role/', views.RoleListView.as_view(), name='role-list-create'),
path('role-tab/', views.RoleTabRetrieveView.as_view(), name='role-tab'), path('role/types/', views.RoleChoiceListView.as_view(), name='role-type-list'),
path('role/tab/', views.RoleTabRetrieveView.as_view(), name='role-tab'),
path('user-role/', views.UserRoleListView.as_view(), name='user-role-list-create'), path('user-role/', views.UserRoleListView.as_view(), name='user-role-list-create'),
path('user/', views.UserListView.as_view(), name='user-create-list'), path('user/', views.UserListView.as_view(), name='user-create-list'),
path('user/<int:id>/', views.UserRUDView.as_view(), name='user-rud'), path('user/<int:id>/', views.UserRUDView.as_view(), name='user-rud'),

View File

@ -18,6 +18,13 @@ class RoleListView(generics.ListCreateAPIView):
filter_class = filters.RoleListFilter filter_class = filters.RoleListFilter
class RoleChoiceListView(generics.GenericAPIView):
"""Return role choices."""
def get(self, request, *args, **kwargs):
"""Implement GET-method"""
return Response(models.Role.role_types(), status=status.HTTP_200_OK)
class RoleTabRetrieveView(generics.GenericAPIView): class RoleTabRetrieveView(generics.GenericAPIView):
permission_classes = [permissions.IsAdminUser] permission_classes = [permissions.IsAdminUser]
@ -54,7 +61,7 @@ class UserRoleListView(generics.ListCreateAPIView):
class UserListView(generics.ListCreateAPIView): class UserListView(generics.ListCreateAPIView):
"""User list create view.""" """User list create view."""
queryset = User.objects.prefetch_related('roles') queryset = User.objects.prefetch_related('roles', 'subscriber')
serializer_class = serializers.BackUserSerializer serializer_class = serializers.BackUserSerializer
permission_classes = (permissions.IsAdminUser,) permission_classes = (permissions.IsAdminUser,)
filter_class = filters.AccountBackOfficeFilter filter_class = filters.AccountBackOfficeFilter