cwr/web/views/admin.py

44 lines
1.6 KiB
Python

from django.contrib import messages
from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib.auth.models import Group
from django.shortcuts import render
from web.utils import send_email, is_superuser
from web.models.custom_user import CustomUser
@login_required
@user_passes_test(is_superuser, login_url='/accounts/denied/')
def manage_users(request):
context = {}
if request.method == 'POST':
if 'make_member' in request.POST:
user_id = request.POST.get('make_member')
user = CustomUser.objects.filter(id=user_id).first()
member_group = Group.objects.get(name='Member')
user.groups.add(member_group)
send_email(
subject='Christian Webring - You have been added as a member!',
message=f'Hello {user.username},\n\nYou have been added as a member to the christian webring, please login here: https://members.christian-webring.org \n\n Thanks, \n the Christian Webring Team',
recipients=[user.email]
)
messages.success(request, f"You added {user.username} as a member!")
non_members = []
members = []
users = CustomUser.objects.all()
for user in users:
if user.groups.filter(name='Member').exists():
user.is_member = True
members.append(user)
else:
user.is_member = False
non_members.append(user)
non_members.extend(members)
context['parsed_users'] = non_members
return render(request, 'user_management.html', context)