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"""
from rest_framework import serializers
from account import models
from account.models import User
class RoleSerializer(serializers.ModelSerializer):
@ -19,3 +20,32 @@ class UserRoleSerializer(serializers.ModelSerializer):
'user',
'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 = [
path('role/', views.RoleLstView.as_view(), name='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 import models
@ -11,3 +14,27 @@ class RoleLstView(generics.ListCreateAPIView):
class UserRoleLstView(generics.ListCreateAPIView):
serializer_class = serializers.UserRoleSerializer
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({
'legacy': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '172.22.0.1',
# 'HOST': 'mysql_db',
# 'HOST': '172.22.0.1',
'HOST': 'mysql_db',
'PORT': 3306,
'NAME': 'dev',
'USER': 'dev',
@ -52,41 +52,41 @@ DATABASES.update({
# LOGGING
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
},
'null': {
'class': 'logging.NullHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
},
'py.warnings': {
'handlers': ['console'],
},
'django.db.backends': {
'handlers': ['console', ],
'level': 'DEBUG',
'propagate': False,
},
}
}
# LOGGING = {
# 'version': 1,
# 'disable_existing_loggers': False,
# 'filters': {
# 'require_debug_false': {
# '()': 'django.utils.log.RequireDebugFalse',
# },
# 'require_debug_true': {
# '()': 'django.utils.log.RequireDebugTrue',
# },
# },
# 'handlers': {
# 'console': {
# 'level': 'DEBUG',
# 'filters': ['require_debug_true'],
# 'class': 'logging.StreamHandler',
# },
# 'null': {
# 'class': 'logging.NullHandler',
# },
# },
# 'loggers': {
# 'django': {
# 'handlers': ['console'],
# },
# 'py.warnings': {
# 'handlers': ['console'],
# },
# 'django.db.backends': {
# 'handlers': ['console', ],
# 'level': 'DEBUG',
# 'propagate': False,
# },
# }
# }
# ELASTICSEARCH SETTINGS