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
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, })
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, })
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 })
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')
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 })
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
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, })
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)