back user api

This commit is contained in:
alex 2019-11-19 17:47:12 +03:00
parent 484a9a3250
commit a8cc734d20
4 changed files with 99 additions and 41 deletions

View File

@ -1,6 +1,7 @@
"""Back account serializers""" """Back account serializers"""
from rest_framework import serializers from rest_framework import serializers
from account import models from account import models
from account.models import User
class RoleSerializer(serializers.ModelSerializer): class RoleSerializer(serializers.ModelSerializer):
@ -18,4 +19,33 @@ class UserRoleSerializer(serializers.ModelSerializer):
fields = [ fields = [
'user', 'user',
'role' 'role'
] ]
class BackUserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
extra_kwargs = {
'password': {'write_only': True}
}
read_only_fields = ('old_password', 'last_login', 'date_joined')
def create(self, validated_data):
user = super().create(validated_data)
user.set_password(validated_data['password'])
user.save()
return user
class BackDetailUserSerializer(BackUserSerializer):
class Meta:
model = User
exclude = ('password',)
read_only_fields = ('old_password', 'last_login', 'date_joined')
def create(self, validated_data):
user = super().create(validated_data)
user.set_password(validated_data['password'])
user.save()
return user

View File

@ -8,5 +8,6 @@ app_name = 'account'
urlpatterns = [ urlpatterns = [
path('role/', views.RoleLstView.as_view(), name='role-list-create'), path('role/', views.RoleLstView.as_view(), name='role-list-create'),
path('user-role/', views.UserRoleLstView.as_view(), name='user-role-list-create'), path('user-role/', views.UserRoleLstView.as_view(), name='user-role-list-create'),
path('user/', views.UserLstView.as_view(), name='user-list-create'),
path('user/<int:id>/', views.UserRUDView.as_view(), name='user-rud'),
] ]

View File

@ -1,4 +1,7 @@
from rest_framework import generics from django_filters.rest_framework import DjangoFilterBackend, filters
from rest_framework import generics, permissions
from account.models import User
from account.serializers import back as serializers from account.serializers import back as serializers
from account import models from account import models
@ -10,4 +13,28 @@ class RoleLstView(generics.ListCreateAPIView):
class UserRoleLstView(generics.ListCreateAPIView): class UserRoleLstView(generics.ListCreateAPIView):
serializer_class = serializers.UserRoleSerializer serializer_class = serializers.UserRoleSerializer
queryset = models.Role.objects.all() queryset = models.Role.objects.all()
class UserLstView(generics.ListCreateAPIView):
"""User list create view."""
queryset = User.objects.all()
serializer_class = serializers.BackUserSerializer
permission_classes = (permissions.IsAdminUser,)
filter_backends = (DjangoFilterBackend, filters.OrderingFilter,)
filterset_fields = (
'email_confirmed',
'is_staff',
'is_active',
'is_superuser',
'roles',
)
ordering_fields = '__all__'
class UserRUDView(generics.RetrieveUpdateDestroyAPIView):
"""User RUD view."""
queryset = User.objects.all()
serializer_class = serializers.BackDetailUserSerializer
permission_classes = (permissions.IsAdminUser,)
lookup_field = 'id'

View File

@ -43,8 +43,8 @@ INSTALLED_APPS.append('transfer.apps.TransferConfig')
DATABASES.update({ DATABASES.update({
'legacy': { 'legacy': {
'ENGINE': 'django.db.backends.mysql', 'ENGINE': 'django.db.backends.mysql',
'HOST': '172.22.0.1', # 'HOST': '172.22.0.1',
# 'HOST': 'mysql_db', 'HOST': 'mysql_db',
'PORT': 3306, 'PORT': 3306,
'NAME': 'dev', 'NAME': 'dev',
'USER': 'dev', 'USER': 'dev',
@ -52,41 +52,41 @@ DATABASES.update({
# LOGGING # LOGGING
LOGGING = { # LOGGING = {
'version': 1, # 'version': 1,
'disable_existing_loggers': False, # 'disable_existing_loggers': False,
'filters': { # 'filters': {
'require_debug_false': { # 'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse', # '()': 'django.utils.log.RequireDebugFalse',
}, # },
'require_debug_true': { # 'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue', # '()': 'django.utils.log.RequireDebugTrue',
}, # },
}, # },
'handlers': { # 'handlers': {
'console': { # 'console': {
'level': 'DEBUG', # 'level': 'DEBUG',
'filters': ['require_debug_true'], # 'filters': ['require_debug_true'],
'class': 'logging.StreamHandler', # 'class': 'logging.StreamHandler',
}, # },
'null': { # 'null': {
'class': 'logging.NullHandler', # 'class': 'logging.NullHandler',
}, # },
}, # },
'loggers': { # 'loggers': {
'django': { # 'django': {
'handlers': ['console'], # 'handlers': ['console'],
}, # },
'py.warnings': { # 'py.warnings': {
'handlers': ['console'], # 'handlers': ['console'],
}, # },
'django.db.backends': { # 'django.db.backends': {
'handlers': ['console', ], # 'handlers': ['console', ],
'level': 'DEBUG', # 'level': 'DEBUG',
'propagate': False, # 'propagate': False,
}, # },
} # }
} # }
# ELASTICSEARCH SETTINGS # ELASTICSEARCH SETTINGS