Ejemplo n.º 1
0
def show_pad(request, group_name, pad_name):
    # test if user is in group
    if not request.user.groups.filter(name=group_name).exists():
        return TemplateResponse(request, 'etherpad/forbidden.html', {
            'group_name': group_name,
        }, status=403)

    ep = Etherpad()
    try:
        ep.create_session(request.user, group_name)
        group_id = ep.get_group_id(group_name)
        pad_url = '{0}/p/{1}${2}'.format(
                settings.ETHERPAD_URL,
                group_id,
                pad_name)
        cookie = ep.get_session_cookie(request.user)
    except URLError:
        return TemplateResponse(request, 'etherpad/server_error.html', {
            }, status=500)

    is_fullscreen = 'fullscreen' in request.GET
    response = TemplateResponse(request, 'etherpad/pad.html', {
        'pad_url': pad_url,
        'group_name': group_name,
        'pad_name': pad_name,
        'fullscreen': is_fullscreen,
        'base_template': 'base_raw.html' if is_fullscreen else 'base.html'
    })
    cookie_domain = '.' + request.get_host()
    response.set_cookie('sessionID', cookie, domain=cookie_domain)
    response['Access-Control-Allow-Origin'] = "https://ep.mafiasi.de"
    return response
Ejemplo n.º 2
0
def delete_pad(request, group_name, pad_name):
    # test if user is in group
    if not request.user.groups.filter(name=group_name).exists():
        return TemplateResponse(request, 'etherpad/forbidden.html', {
            'group_name': group_name,
        }, status=403)
    # test if user is admin in the group
    group = request.user.groups.filter(name=group_name).all()[0]
    if not group.properties.admins.filter(pk=request.user.pk):
        return TemplateResponse(request, 'etherpad/forbidden.html', {
            'group_name': group_name,
        }, status=403)

    if request.method == 'POST':
        form = DeleteEtherpadForm(request.user, request.POST)
        if form.is_valid():
            ep = Etherpad()
            ep.delete_pad('{0}${1}'.format(
                ep.get_group_id(group_name),
                pad_name))
            return redirect('ep_index')

    form = DeleteEtherpadForm(request.user)
    return TemplateResponse(request, 'etherpad/delete_pad.html', {
        'form': form,
        'group': group_name,
        'pad': pad_name,
    })
Ejemplo n.º 3
0
def create_new_pad(request):
    if request.method == 'POST':
        form = NewEtherpadForm(request.user, request.POST)
        if form.is_valid():
            group = form.cleaned_data['group']
            name = form.cleaned_data['name']
            ep = Etherpad()
            ep.create_group_pad(group.name, name)
            return redirect('ep_show_pad', group, name)
    else:
        form = NewEtherpadForm(request.user)
    return TemplateResponse(request, 'etherpad/create_new_pad.html', {
        'form': form,
    })
Ejemplo n.º 4
0
def create_new_pad(request):
    if request.method == 'POST':
        form = NewEtherpadForm(request.user, request.POST)
        if form.is_valid():
            group = form.cleaned_data['group']
            name = form.cleaned_data['name']
            ep = Etherpad()
            ep.create_group_pad(group.name, name)
            return redirect('ep_show_pad', group, name)
    else:
        form = NewEtherpadForm(request.user)
    return TemplateResponse(request, 'etherpad/create_new_pad.html', {
        'form': form,
    })
Ejemplo n.º 5
0
def show_pad_html(request, group_name, pad_name):
    # test if user is in group
    if not request.user.groups.filter(name=group_name).exists():
        return TemplateResponse(request, 'etherpad/forbidden.html', {
            'group_name': group_name,
        }, status=403)

    ep = Etherpad()
    full_pad_name = '{0}${1}'.format(
                ep.get_group_id(group_name),
                pad_name)
    html = ep.get_html(full_pad_name)
    return TemplateResponse(request, 'etherpad/pad_html.html', {
        'html': html[27:-14], #  strip <html> and head
        'pad_name': pad_name,
        'group_name': group_name
    })
Ejemplo n.º 6
0
def pin_pad(request, group_name, pad_name):
    try:
        group = request.user.groups.get(name=group_name)
    except ObjectDoesNotExist:
        return TemplateResponse(request,
                                'etherpad/forbidden-notingroup.html', {
                                    'group_name': group_name,
                                },
                                status=403)

    # ensure that pad exists
    ep = Etherpad()
    full_pad_name = '{0}${1}'.format(ep.get_group_id(group_name), pad_name)
    html = ep.get_html(full_pad_name)

    PinnedEtherpad.objects.get_or_create(user=request.user,
                                         group_name=group,
                                         pad_name=pad_name)

    return redirect('ep_index')
Ejemplo n.º 7
0
def show_pad_html(request, group_name, pad_name):
    # test if user is in group
    if not request.user.groups.filter(name=group_name).exists():
        return TemplateResponse(request,
                                'etherpad/forbidden-notingroup.html', {
                                    'group_name': group_name,
                                },
                                status=403)

    ep = Etherpad()
    full_pad_name = '{0}${1}'.format(ep.get_group_id(group_name), pad_name)
    html = ep.get_html(full_pad_name)
    return TemplateResponse(
        request,
        'etherpad/pad_html.html',
        {
            'html': html[27:-14],  #  strip <html> and head
            'pad_name': pad_name,
            'group_name': group_name
        })
Ejemplo n.º 8
0
def show_pad(request, group_name, pad_name):
    # test if user is in group
    if not request.user.groups.filter(name=group_name).exists():
        return TemplateResponse(request,
                                'etherpad/forbidden-notingroup.html', {
                                    'group_name': group_name,
                                },
                                status=403)

    ep = Etherpad()
    try:
        ep.create_session(request.user, group_name)
        group_id = ep.get_group_id(group_name)
        pad_url = '{0}/p/{1}${2}'.format(settings.ETHERPAD_URL, group_id,
                                         pad_name.replace('/', '_'))
        cookie = ep.get_session_cookie(request.user)
    except URLError:
        return TemplateResponse(request,
                                'etherpad/server_error.html', {},
                                status=500)

    is_fullscreen = 'fullscreen' in request.GET
    response = TemplateResponse(
        request, 'etherpad/pad.html', {
            'pad_url': pad_url,
            'group_name': group_name,
            'pad_name': pad_name,
            'fullscreen': is_fullscreen,
            'base_template': 'base_raw.html' if is_fullscreen else 'base.html'
        })
    cookie_domain = '.' + settings.EP_COOKIE_DOMAIN
    response.set_cookie('sessionID', cookie, domain=cookie_domain)
    response['Access-Control-Allow-Origin'] = "https://ep.mafiasi.de"
    return response
Ejemplo n.º 9
0
def delete_pad(request, group_name, pad_name):
    # test if user is in group
    if not request.user.groups.filter(name=group_name).exists():
        return TemplateResponse(request,
                                'etherpad/forbidden-notingroup.html', {
                                    'group_name': group_name,
                                },
                                status=403)
    # test if user is admin in the group
    group = request.user.groups.filter(name=group_name).all()[0]
    if not group.properties.admins.filter(pk=request.user.pk):
        return TemplateResponse(request,
                                'etherpad/forbidden-notadmin.html', {
                                    'group_name': group_name,
                                },
                                status=403)

    if request.method == 'POST':
        form = DeleteEtherpadForm(request.user, request.POST)
        if form.is_valid():
            ep = Etherpad()
            ep.delete_pad('{0}${1}'.format(ep.get_group_id(group_name),
                                           pad_name))

            # delete pinned pads
            PinnedEtherpad.objects.filter(group_name=group,
                                          pad_name=pad_name).delete()

            return redirect('ep_index')

    form = DeleteEtherpadForm(request.user)
    return TemplateResponse(request, 'etherpad/delete_pad.html', {
        'form': form,
        'group': group_name,
        'pad': pad_name,
    })
Ejemplo n.º 10
0
def _delete_group_ep(sender, group, **kwargs):
    ep = Etherpad()
    pads = ep.get_group_pads(group.name)
    for pad in pads:
        ep.delete_pad(pad)
    ep.delete_group(group.name)
Ejemplo n.º 11
0
def _delete_group_ep(sender, group, **kwargs):
    ep = Etherpad()
    pads = ep.get_group_pads(group.name)
    for pad in pads:
        ep.delete_pad(pad)
    ep.delete_group(group.name)