|
|
|
@ -1,11 +1,12 @@ |
|
|
|
from django.contrib.auth.models import User, Group |
|
|
|
from django.contrib.auth.mixins import PermissionRequiredMixin, LoginRequiredMixin |
|
|
|
from django.views.generic import CreateView, UpdateView, DeleteView, DetailView |
|
|
|
from django.contrib.auth.views import LoginView, LogoutView, PasswordChangeView |
|
|
|
from django.contrib.auth.views import LoginView, LogoutView, PasswordChangeView, login_required |
|
|
|
from django.contrib.auth.hashers import make_password |
|
|
|
from django.contrib.messages.views import SuccessMessageMixin |
|
|
|
from django.contrib import messages |
|
|
|
from django.urls import reverse, reverse_lazy |
|
|
|
from django.shortcuts import get_object_or_404 |
|
|
|
from django.shortcuts import get_object_or_404, redirect |
|
|
|
|
|
|
|
from .models import UserProfile, SchoolProfile |
|
|
|
from content.models import Content |
|
|
|
@ -140,6 +141,8 @@ class School(LoginRequiredMixin, PermissionRequiredMixin, DetailView): |
|
|
|
context['contents'] = Content.objects.filter(school_owner=self.object.school) |
|
|
|
context['school'] = True |
|
|
|
context['members'] = User.objects.filter(userprofile__school=self.object.school) |
|
|
|
context['manager_right'] = 'auth.manage_' + str(self.object.pk) |
|
|
|
context['manager_group'],_ = Group.objects.get_or_create(name=str(self.object.pk)+'_admins') |
|
|
|
return context |
|
|
|
|
|
|
|
def has_permission(self): |
|
|
|
@ -167,3 +170,31 @@ class PasswordChange(SuccessMessageMixin, PasswordChangeView): |
|
|
|
'title' : "Changer le mot de passe", |
|
|
|
'validate' : "Changer", |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@login_required |
|
|
|
def promote_user(request, school_pk, user_pk): |
|
|
|
school = get_object_or_404(Group, pk=school_pk) |
|
|
|
user = get_object_or_404(User, pk=user_pk) |
|
|
|
if request.user.has_perm('manage_'+str(school.pk)): |
|
|
|
admins,_ = Group.objects.get_or_create(name=str(school.pk)+'_admins') |
|
|
|
user.groups.add(admins) |
|
|
|
user.save() |
|
|
|
messages.success(request, user.username + ' a été ajouté aux administrateurs de ' + school.name) |
|
|
|
return redirect(reverse('users:school', kwargs={'pk':school.pk})) |
|
|
|
messages.error(request, "Vous n'aves pas ce droit.") |
|
|
|
return redirect('home') |
|
|
|
|
|
|
|
|
|
|
|
@login_required |
|
|
|
def degrade_user(request, school_pk, user_pk): |
|
|
|
school = get_object_or_404(Group, pk=school_pk) |
|
|
|
user = get_object_or_404(User, pk=user_pk) |
|
|
|
if request.user.has_perm('manage_'+str(school.pk)): |
|
|
|
admins,_ = Group.objects.get_or_create(name=str(school.pk)+'_admins') |
|
|
|
user.groups.remove(admins) |
|
|
|
user.save() |
|
|
|
messages.success(request, user.username + ' a été enlevé des administrateurs de ' + school.name) |
|
|
|
return redirect(reverse('users:school', kwargs={'pk':school.pk})) |
|
|
|
messages.error(request, "Vous n'aves pas ce droit.") |
|
|
|
return redirect('home') |
|
|
|
|