from django.contrib.auth.decorators import login_required, permission_required from django.contrib.auth.models import User from django.contrib.sites.shortcuts import get_current_site from django.shortcuts import get_object_or_404, render, redirect from django.utils.translation import gettext_lazy as _ from users.forms import UserForm, UserProfileForm from users.utils import send_new_user_email @permission_required('users.view_user') def user_list(request): return render(request, 'user_list.html', {'users': User.objects.order_by('username')}) @login_required def user_profile(request): if request.method == 'POST': form = UserProfileForm(instance=request.user, data=request.POST) if form.is_valid(): form.save() return redirect('dash') else: form = UserProfileForm(instance=request.user) return render(request, 'user_profile.html', {'form': form}) @permission_required('users.add_user') def user_add(request): if request.method == 'POST': form = UserForm(instance=User(), data=request.POST) if form.is_valid(): user = form.save() send_new_user_email(site=get_current_site(request), user=user, use_https=request.is_secure()) return redirect('users:user_list') else: form = UserForm(instance=User()) return render(request, 'user_form.html', {'form': form, 'title': _('Dodaj użytkownika')}) @permission_required('users.change_user') def user_edit(request, pk): user = get_object_or_404(User, pk=pk) if request.method == 'POST': form = UserForm(instance=user, data=request.POST) if form.is_valid(): form.save() return redirect('users:user_list') else: form = UserForm(instance=user) return render(request, 'user_form.html', {'form': form, 'title': _('Edytuj użytkownika')})