def password_changed(request): """ Inform that the password has been changed, and redirect to home. """ utilities.add_message(request, 'Password changed!') return HttpResponseRedirect(reverse('home'))
def message_send(request, username): """ Send a private message to another user. """ userModel = get_user_model() try: user = userModel.objects.get(username=username) except userModel.DoesNotExist: raise Http404('Invalid username.') if request.method == 'POST': form = PrivateMessageForm(request.POST) if form.is_valid(): title = form.cleaned_data['title'] content = form.cleaned_data['content'] message = PrivateMessage(receiver=user, sender=request.user, title=title, content=content) message.save() utilities.add_message(request, 'Message sent to {}!'.format(user)) return HttpResponseRedirect(user.get_url()) else: form = PrivateMessageForm() context = {'form': form, 'receiver': user} return render(request, 'accounts/send_message.html', context)
def message_remove(request, messageId): """ Remove a private message. """ try: message = request.user.privatemessage_set.get(id=messageId) except PrivateMessage.DoesNotExist: raise Http404("Message doesn't exist.") message.delete() utilities.add_message(request, 'Message removed!') return HttpResponseRedirect(reverse('accounts:message_all'))
def remove_user(request, username): """ Remove an user account (also removes everything associated with it). """ userModel = get_user_model() try: user = userModel.objects.get(username=username) except userModel.DoesNotExist: raise Http404("User doesn't exist.") else: utilities.add_message(request, "'{}' user removed!".format(user)) user.delete() return HttpResponseRedirect(reverse('home'))
def disable_user(request, username): """ Enable/disable an user account. If the account is disabled, the user won't be able to login. """ userModel = get_user_model() try: user = userModel.objects.get(username=username) except userModel.DoesNotExist: raise Http404("User doesn't exist.") else: value = not user.is_active # only other staff users can enable/disable staff users if user.is_staff: if request.user.is_staff: user.is_active = value user.save(update_fields=['is_active']) else: return HttpResponseForbidden("Can't disable a staff member.") else: user.is_active = value user.save(update_fields=['is_active']) if value: message = "'{}' account is now active.".format(user) else: message = "'{}' account is now disabled.".format(user) utilities.add_message(request, message) return HttpResponseRedirect(user.get_url())
def new_account(request): """ Create a new user account. """ if request.method == 'POST': form = MyUserCreationForm(request.POST) if form.is_valid(): form.save() utilities.add_message( request, "User '{}' created!".format(form.cleaned_data['username'])) return HttpResponseRedirect(reverse('accounts:login')) else: form = MyUserCreationForm() context = {'form': form} return render(request, 'accounts/new_account.html', context)
def set_moderator(request, username): """ Give/remove moderator rights from an account. """ userModel = get_user_model() try: user = userModel.objects.get(username=username) except userModel.DoesNotExist: raise Http404("User doesn't exist.") user.is_moderator = not user.is_moderator user.save(update_fields=['is_moderator']) if user.is_moderator: message = "'{}' is now a moderator.".format(user) else: message = "'{}' is not a moderator anymore.".format(user) utilities.add_message(request, message) return HttpResponseRedirect(user.get_url())