Sunil Mohan Adapa d7a60b1aca
calibre: Use privileged decorator for actions
Tests:

- Unit and functional tests work.
- Creating a library works.
  - An error while creating library shows as proper message.
- Deleting a library works.
  - An error while deleting library shows as proper messages.
- Creating/deleting library reflects properly in the list of libraries.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-10-08 18:51:24 -04:00

31 lines
1012 B
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
"""Django form for configuring calibre."""
from django import forms
from django.core import validators
from django.core.exceptions import ValidationError
from django.utils.translation import gettext_lazy as _
from . import privileged
class CreateLibraryForm(forms.Form):
"""Form to create an empty library."""
name = forms.CharField(
label=_('Name of the new library'), strip=True,
help_text=_('Only letters of the English alphabet, numbers '
'and the characters _ . and - without spaces or '
'special characters. Example: My_Library_2000'),
validators=[validators.RegexValidator(r'^[A-Za-z0-9_.-]+$')])
def clean_name(self):
"""Check if the library name is valid."""
name = self.cleaned_data['name']
if name in privileged.list_libraries():
raise ValidationError(
_('A library with this name already exists.'))
return name