from django.utils.translation import gettext_lazy as _
from rest_framework import serializers

__all__ = [
    'CASSettingSerializer',
]


class CASSettingSerializer(serializers.Serializer):
    PREFIX_TITLE = _('CAS')

    AUTH_CAS = serializers.BooleanField(required=False, label=_('Enable CAS Auth'))
    CAS_SERVER_URL = serializers.CharField(required=False, max_length=1024, label=_('Server url'))
    CAS_ROOT_PROXIED_AS = serializers.CharField(
        required=False, allow_null=True, allow_blank=True,
        max_length=1024, label=_('Proxy server url')
    )
    CAS_LOGOUT_COMPLETELY = serializers.BooleanField(required=False, label=_('Logout completely'))
    CAS_VERSION = serializers.IntegerField(
        required=False, label=_('Version'), min_value=1, max_value=3
    )
    CAS_USERNAME_ATTRIBUTE = serializers.CharField(
        required=False, max_length=1024, label=_('Username attr')
    )
    CAS_APPLY_ATTRIBUTES_TO_USER = serializers.BooleanField(
        required=False, label=_('Enable attributes map')
    )
    CAS_RENAME_ATTRIBUTES = serializers.JSONField(required=False, label=_('Rename attr'))
    CAS_CREATE_USER = serializers.BooleanField(required=False, label=_('Create user if not'))