Exemplo n.º 1
0
    def get(self, request):
        _, domain = request.user.email.split('@')

        if not EmailDomain.objects.filter(domain=domain).first():
            logout(request)
            return redirect('/login/?next=/certify/?token={}&error={}'.format(
                request.GET['token'],
                "Nom de domaine inconnu: \"{}\"".format(domain)))

        if 'token' in request.GET and request.GET['token']:
            try:
                member = Member.objects.get(hash=request.GET['token'])
            except Member.DoesNotExist:
                return redirect(
                    '/login/?next=/certify/?token={}&error={}'.format(
                        request.GET['token'],
                        "Token inconnu (avez vous deja verifie votre compte ?)"
                    ))

            member.hash = ''
            member.email = request.user.email
            member.save()

            Group.objects.get_or_create(group='@' + domain,
                                        email=request.user.email)

            Update(
                type='certify',
                email=member.email,
                value=member.id,
                author=member.id,
            ).save()
            return redirect('certify')

        return render(request, 'registration/confirm.html')
Exemplo n.º 2
0
    def post(self, request, id):
        member = get_object_or_404(Member, id=id)
        member.email = request.POST.get('email', '')
        member.save()

        Update(
            type     = 'certify',
            email    = member.email,
            value    = member.id,
            author   = int(request.user.social_auth.get(provider='discord').uid),
        ).save()

        return redirect('members:profile', id=member.id)
Exemplo n.º 3
0
    def get(self, request, pk):
        if not request.user.is_superuser:
            raise Http404('Nope')

        server = get_object_or_404(Server, pk=pk)
        server.is_active = False
        server.save()

        Update(
            server   = server,
            type     = 'config',
            value    = 'deactivate',
            author   = int(request.user.social_auth.get(provider='discord').uid),
        ).save()

        return redirect('servers:info', pk=pk)
Exemplo n.º 4
0
    def get(self, request, pk):
        group = get_object_or_404(Group, pk=pk)

        email = group.email

        member = get_object_or_404(Member, email=email)

        Update(
            type    = 'delgroup',
            email   = group.email,
            value   = group.group,
            author  = int(request.user.social_auth.get(provider='discord').uid),
        ).save()

        group.delete()

        return redirect('members:profile', id=member.id)
Exemplo n.º 5
0
    def get(self, request, pk):
        ban = get_object_or_404(Ban, pk=pk)
        server = ban.server

        if not request.user.is_superuser and not request.user in server.moderators.all() and not request.user in server.admins.all():
            raise Http404('Not found')

        Update(
            server   = server,
            type     = 'unban',
            ban_type = ban.type,
            value    = ban.value,
            author   = int(request.user.social_auth.get(provider='discord').uid),
        ).save()

        ban.delete()

        return redirect('servers:info', pk=server.pk)
Exemplo n.º 6
0
    def get(self, request, pk, dpk):
        domain = get_object_or_404(EmailDomain, pk=dpk)
        server = get_object_or_404(Server, pk=pk)

        if not request.user.is_superuser and not request.user in server.admins.all():
            raise Http404('Not found')

        Update(
            server   = server,
            type     = 'config',
            email    = domain.domain,
            value    = 'deldomain',
            author   = int(request.user.social_auth.get(provider='discord').uid),
        ).save()

        domain.delete()

        return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
Exemplo n.º 7
0
    def get(self, request, pk):
        rank = get_object_or_404(Rank, pk=pk)

        server = rank.server

        if not request.user.is_superuser and not request.user in server.moderators.all() and not request.user in server.admins.all():
            raise Http404('Not found')

        Update(
            server   = server,
            type     = 'config',
            value    = 'delrank-' + rank.type,
            ban_type = rank.name,
            email    = rank.discord_id,
            author   = int(request.user.social_auth.get(provider='discord').uid),
        ).save()

        rank.delete()

        return redirect('servers:info', pk=server.id)
Exemplo n.º 8
0
    def post(self, request, id):
        member = get_object_or_404(Member, id=id)

        if member.email == '':
            return HttpResponseNotFound('User does not get an email')

        data = request.POST

        Group(
            email=member.email,
            group=data['group'],
        ).save()

        Update(
            type     = 'addgroup',
            email    = member.email,
            value    = data['group'],
            author   = int(request.user.social_auth.get(provider='discord').uid),
        ).save()

        return redirect('members:profile', id=id)
Exemplo n.º 9
0
    def post(self, request, pk):
        server = get_object_or_404(Server, pk=pk)

        if not request.user.is_superuser and not request.user in server.moderators.all() and not request.user in server.admins.all():
            raise Http404('Not found')

        data = request.POST

        Ban(
            server = server,
            type   = data['type'],
            value  = data['value']
        ).save()

        Update(
            server   = server,
            type     = 'ban',
            ban_type = data['type'],
            value    = data['value'],
            author   = int(request.user.social_auth.get(provider='discord').uid),
        ).save()

        return redirect('servers:info', pk=pk)
Exemplo n.º 10
0
    def post(self, request, pk):
        server = get_object_or_404(Server, pk=pk)

        if (not request.user.is_superuser) and (not request.user in server.moderators.all()) and (not request.user in server.admins.all()):
            raise Http404('Not found')

        type = request.POST.get('type', '').split('-')
        value = request.POST.get('value', '')
        rank = request.POST.get('rank', '')

        if type[0] == 'ban':
            Ban(
                server = server,
                type   = type[1],
                value  = value
            ).save()

            Update(
                server   = server,
                type     = 'ban',
                ban_type = type[1],
                value    = value,
                author   = int(request.user.social_auth.get(provider='discord').uid),
            ).save()
        elif type[0] == 'role':
            Rank(
                server     = server,
                type       = type[1],
                name       = rank,
                discord_id = value
            ).save()

            Update(
                server   = server,
                type     = 'config',
                value    = 'addrank-' + type[1],
                ban_type = rank,
                email    = value,
                author   = int(request.user.social_auth.get(provider='discord').uid),
            ).save()
        elif type[0] == 'serv':
            try:
                user = UserSocialAuth.objects.get(provider='discord', uid=value)
            except UserSocialAuth.DoesNotExist:
                return redirect('servers:info', pk=pk)

            if type[1] == 'mod':
                if request.user.is_superuser or request.user in server.admins.all():
                    server.moderators.add(user.user)
                else:
                    raise Http404('Not found')
            elif type[1] == 'admin':
                if request.user.is_superuser:
                    server.admins.add(user.user)
                else:
                    raise Http404('Not found')

            server.save()
        elif type[0] == 'domain':
            domain = EmailDomain(domain=value)
            domain.save()

            server.emails_domains.add(domain)
            server.save()

            Update(
                server   = server,
                type     = 'config',
                value    = 'adddomain',
                ban_type = value,
                author   = int(request.user.social_auth.get(provider='discord').uid),
            ).save()
        elif type[0] == 'channel':
            if not (request.user.is_superuser or request.user in server.admins.all()):
                raise Http404('Not found')

            server.channel_admin   = request.POST.get('admin', 0)
            server.channel_logs    = request.POST.get('logs', 0)
            server.channel_request = request.POST.get('request', 0)

            server.save()

            Update(
                server   = server,
                type     = 'config',
                value    = 'channels',
                author   = int(request.user.social_auth.get(provider='discord').uid),
            ).save()

        return redirect('servers:info', pk=pk)