Ejemplo n.º 1
0
def regenerate_sharing_key_view(request, usergroup_id):
    if not is_usergroup_owner(request.user, usergroup_id):
        raise PermissionDenied

    group = get_object_or_404(
        UserGroup.objects.select_related('sharing_config'), id=usergroup_id)

    group.sharing_config.key = generate_key()
    group.sharing_config.save()

    return redirect('teacher_usergroup_detail', usergroup_id=usergroup_id)
Ejemplo n.º 2
0
def set_sharing_view(request, usergroup_id, value):
    if not is_usergroup_owner(request.user, usergroup_id):
        raise PermissionDenied

    group = get_object_or_404(
        UserGroup.objects.select_related('sharing_config'), id=usergroup_id)

    group.sharing_config.enabled = value
    group.sharing_config.save()

    return redirect('teacher_usergroup_detail', usergroup_id=usergroup_id)
Ejemplo n.º 3
0
def delete_members_view(request, usergroup_id):
    if not is_usergroup_owner(request.user, usergroup_id):
        raise PermissionDenied

    group = get_object_or_404(UserGroup, id=usergroup_id)

    selected_members = User.objects.filter(
        id__in=request.POST.getlist('member'))
    group.members.remove(*list(selected_members))

    messages.success(request, _("Deletion of selected members successful!"))

    return redirect('teacher_usergroup_detail', usergroup_id=usergroup_id)
Ejemplo n.º 4
0
def attach_to_contest_view(request):
    usergroup_id = request.POST.get('usergroup_id')
    if not is_usergroup_owner(request.user, usergroup_id):
        raise PermissionDenied
    usergroup = UserGroup.objects.get(id=usergroup_id)
    if is_usergroup_attached(request.contest, usergroup):
        messages.info(request,
                      _("The group is already attached to the contest."))
    else:
        usergroup.contests.add(request.contest)
        messages.info(request,
                      _("The group was successfully attached to the contest!"))

    return redirect('show_members',
                    contest_id=request.contest.id,
                    member_type='pupil')
Ejemplo n.º 5
0
def delete_owners_view(request, usergroup_id):
    if not is_usergroup_owner(request.user, usergroup_id):
        raise PermissionDenied

    group = get_object_or_404(UserGroup, id=usergroup_id)
    selected_owners = User.objects.filter(id__in=request.POST.getlist('owner'))

    if selected_owners.filter(id=request.user.id).exists():
        messages.error(
            request,
            _("You cannot renounce ownership. "
              "Consider deleting group instead."))
    else:
        group.owners.remove(*list(selected_owners))
        messages.success(request, _("Deletion of selected owners successful!"))

    return redirect('teacher_usergroup_detail', usergroup_id=usergroup_id)
Ejemplo n.º 6
0
    def dispatch(self, request, *args, **kwargs):
        if not is_usergroup_owner(self.request.user,
                                  self.kwargs['usergroup_id']):
            raise PermissionDenied

        return super(GroupsDeleteView, self).dispatch(request, *args, **kwargs)