角色唯一标识
This commit is contained in:
parent
e85a1ac0f6
commit
080d13b37c
|
@ -4,3 +4,5 @@ OLD_PASSWORD_WRONG = {"code":"old_password_wrong", "detail":"旧密码错误"}
|
|||
PHONE_F_WRONG = {"code":"phone_f_wrong", "detail":"手机号格式错误"}
|
||||
PHONE_EXIST = {"code":"phone_exist", "detail":"手机号已存在"}
|
||||
USERNAME_EXIST = {"code":"username_exist", "detail":"账户已存在"}
|
||||
ROLE_NAME_EXIST = {"code":"role_name_exist", "detail":"角色名已存在"}
|
||||
ROLE_CODE_EXIST = {"code":"role_code_exist", "detail":"角色标识已存在"}
|
|
@ -3,7 +3,7 @@ import re
|
|||
from django_celery_beat.models import PeriodicTask, CrontabSchedule, IntervalSchedule
|
||||
from rest_framework import serializers
|
||||
from django_celery_results.models import TaskResult
|
||||
from apps.system.errors import PHONE_EXIST, PHONE_F_WRONG, USERNAME_EXIST
|
||||
from apps.system.errors import PHONE_EXIST, PHONE_F_WRONG, ROLE_CODE_EXIST, ROLE_NAME_EXIST, USERNAME_EXIST
|
||||
from apps.utils.serializers import CustomModelSerializer
|
||||
from apps.utils.constants import EXCLUDE_FIELDS, EXCLUDE_FIELDS_BASE
|
||||
from .models import (Dict, DictType, File, Dept, Permission, Post,
|
||||
|
@ -140,14 +140,28 @@ class RoleCreateUpdateSerializer(CustomModelSerializer):
|
|||
"""
|
||||
角色序列化
|
||||
"""
|
||||
name = serializers.CharField(label="名称", validators=[
|
||||
UniqueValidator(queryset=Role.objects.all(), message='已存在相同名称的角色')])
|
||||
code = serializers.CharField(label="标识", validators=[
|
||||
UniqueValidator(queryset=Role.objects.all(), message='已存在相同标识的角色')])
|
||||
class Meta:
|
||||
model = Role
|
||||
exclude = EXCLUDE_FIELDS
|
||||
|
||||
def create(self, validated_data):
|
||||
if validated_data.get('name', None):
|
||||
if Role.objects.filter(name=validated_data['name']).exists():
|
||||
raise serializers.ValidationError(**ROLE_NAME_EXIST)
|
||||
if validated_data.get('code', None):
|
||||
if Role.objects.filter(code=validated_data['code']).exists():
|
||||
raise serializers.ValidationError(**ROLE_CODE_EXIST)
|
||||
return super().create(validated_data)
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
if validated_data.get('name', None):
|
||||
if Role.objects.filter(name=validated_data['name']).exclude(id=instance.id).exists():
|
||||
raise serializers.ValidationError(**ROLE_NAME_EXIST)
|
||||
if validated_data.get('code', None):
|
||||
if Role.objects.filter(code=validated_data['code']).exclude(id=instance.id).exists():
|
||||
raise serializers.ValidationError(**ROLE_CODE_EXIST)
|
||||
return super().update(instance, validated_data)
|
||||
|
||||
class PermissionSerializer(CustomModelSerializer):
|
||||
"""
|
||||
权限序列化
|
||||
|
|
|
@ -254,6 +254,7 @@ class RoleViewSet(CustomModelViewSet):
|
|||
serializer_class = RoleSerializer
|
||||
create_serializer_class = RoleCreateUpdateSerializer
|
||||
update_serializer_class = RoleCreateUpdateSerializer
|
||||
partial_update_serializer_class = RoleCreateUpdateSerializer
|
||||
search_fields = ['name', 'code']
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue