from django.conf import settings
from django.contrib.admin.views.decorators import staff_member_required
from django.contrib.auth.decorators import login_required
+from django.contrib.auth.forms import AdminPasswordChangeForm
from django.contrib.auth.models import Group, Permission
from django.core.exceptions import PermissionDenied
from django.db.models import Q, Sum
member_edit = login_required(MemberEditView.as_view())
+class MemberPasswordView(FormView):
+ form_class = AdminPasswordChangeForm
+ template_name = 'aa/member_password.html'
+
+ def get_object(self):
+ if not self.request.user.has_perm('aa.add_user'):
+ raise PermissionDenied()
+ return User.objects.get(id=self.kwargs['pk'])
+
+ def get_form_kwargs(self):
+ kwargs = super().get_form_kwargs()
+ kwargs['user'] = self.get_object()
+ return kwargs
+
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ context['user_pk'] = self.kwargs['pk']
+ return context
+
+ def form_valid(self, form):
+ response = super().form_valid(form)
+ form.save()
+ return response
+
+ def get_success_url(self):
+ return reverse_lazy('member-view', kwargs={'pk': self.kwargs['pk']})
+
+
+member_password = login_required(MemberPasswordView.as_view())
+
+
class MemberCreateView(CreateView):
model = User
form_class = MemberCreateForm