File: forms.py

package info (click to toggle)
freedombox 26.3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 83,092 kB
  • sloc: python: 48,542; javascript: 1,730; xml: 481; makefile: 290; sh: 137; php: 32
file content (36 lines) | stat: -rw-r--r-- 1,126 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# SPDX-License-Identifier: AGPL-3.0-or-later
"""
Forms for Coturn app.
"""

from django import forms
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _

from plinth.modules import coturn
from plinth.modules.coturn.components import TurnConfiguration


def get_domain_choices():
    """Double domain entries for inclusion in the choice field."""
    return ((domain, domain) for domain in coturn.get_available_domains())


def turn_uris_validator(turn_uris):
    """Validate list of STUN/TURN Server URIs."""
    uris = [uri for uri in turn_uris.split('\r\n') if uri]
    if not TurnConfiguration.validate_turn_uris(uris):
        raise ValidationError(_('Invalid list of STUN/TURN Server URIs'))


class CoturnForm(forms.Form):
    """Form to select a TLS domain for Coturn."""

    domain = forms.ChoiceField(
        choices=get_domain_choices,
        label=_('TLS domain'),
        help_text=_(
            'Select a domain to use TLS with. If the list is empty, please '
            'configure at least one domain with certificates.'),
        required=False,
    )