Joseph Nuthalapati 62b9063bc2
miniflux: Trim error messages when creating user
Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
2024-07-30 00:14:30 +05:30

89 lines
2.8 KiB
Python

# SPDX-License-Identifier: AGPL-3.0-or-later
"""Django views for Miniflux."""
import logging
from django.contrib import messages
from django.contrib.messages.views import SuccessMessageMixin
from django.urls import reverse_lazy
from django.utils.translation import gettext as _
from django.views.generic.edit import FormView
from plinth import views
from . import privileged
from .forms import UserCredentialsForm
logger = logging.getLogger(__name__)
class MinifluxAppView(views.AppView):
"""Serve configuration page."""
app_id = 'miniflux'
template_name = 'miniflux.html'
class CreateAdminUserView(SuccessMessageMixin, FormView):
"""View to create a new admin user."""
form_class = UserCredentialsForm
prefix = 'miniflux'
template_name = 'form.html'
success_url = reverse_lazy('miniflux:index')
def get_context_data(self, **kwargs):
"""Return additional context for rendering the template."""
context = super().get_context_data(**kwargs)
context['title'] = _('Create Admin User')
return context
def form_valid(self, form):
"""Create the admin user on valid form submission."""
username = form.cleaned_data['username']
password = form.cleaned_data['password']
try:
privileged.create_admin_user(username, password)
self.success_message = _('Created admin user: {username}').format(
username=username)
except Exception as error:
messages.error(
self.request,
_('An error occurred while creating the user: {error}.').
format(error=str(error).strip()))
return super().form_valid(form)
class ResetUserPasswordView(SuccessMessageMixin, FormView):
"""View to reset a user password."""
form_class = UserCredentialsForm
prefix = 'miniflux'
template_name = 'form.html'
success_url = reverse_lazy('miniflux:index')
def get_context_data(self, **kwargs):
"""Return additional context for rendering the template."""
context = super().get_context_data(**kwargs)
context['title'] = _('Reset User Password')
return context
def form_valid(self, form):
"""Reset password on valid form submission."""
username = form.cleaned_data['username']
password = form.cleaned_data['password']
try:
privileged.reset_user_password(username, password)
self.success_message = _('Password reset for user: {username}'
).format(username=username)
except Exception as error:
messages.error(
self.request,
_('An error occurred during password reset: {error}.').format(
error=str(error).strip()))
return super().form_valid(form)