0001-api-add-support-for-custom-rest_framework-fields-to-.patch
src/authentic2/api_views.py | ||
---|---|---|
23 | 23 |
from rest_framework.fields import CreateOnlyDefault |
24 | 24 | |
25 | 25 |
from .custom_user.models import User |
26 |
from . import utils, decorators |
|
26 |
from . import utils, decorators, attribute_kinds
|
|
27 | 27 |
from .models import Attribute, PasswordReset |
28 | 28 |
from .a2_rbac.utils import get_default_ou |
29 | 29 | |
... | ... | |
278 | 278 |
for at in Attribute.objects.all(): |
279 | 279 |
if at.name in self.fields: |
280 | 280 |
continue |
281 |
self.fields[at.name] = serializers.CharField(source='attributes.%s' % at.name, |
|
282 |
required=at.required, allow_blank=True) |
|
281 |
kind = attribute_kinds.get_kind(at.kind) |
|
282 |
field_class = kind['rest_framework_field_class'] |
|
283 |
self.fields[at.name] = field_class(source='attributes.%s' % at.name, |
|
284 |
required=at.required, allow_blank=True) |
|
283 | 285 | |
284 | 286 |
def check_perm(self, perm, ou): |
285 | 287 |
self.context['view'].check_perm(perm, ou) |
src/authentic2/attribute_kinds.py | ||
---|---|---|
10 | 10 |
from django.utils.functional import allow_lazy |
11 | 11 |
from django.template.defaultfilters import capfirst |
12 | 12 | |
13 |
from rest_framework import serializers |
|
14 | ||
13 | 15 |
from .decorators import to_iter |
14 | 16 |
from .plugins import collect_from_plugins |
15 | 17 |
from . import app_settings |
... | ... | |
109 | 111 |
d.setdefault('default', None) |
110 | 112 |
d.setdefault('serialize', lambda x: x) |
111 | 113 |
d.setdefault('deserialize', lambda x: x) |
114 |
d.setdefault('rest_framework_field_class', serializers.CharField) |
|
112 | 115 |
return d |
113 |
- |