示例#1
0
def create_session_community(request, community_id):
    epclient = EtherpadLiteClient(settings.APIKEY, settings.APIURL)
    ether_com = EtherCommunity.objects.get(community=community_id)
    ether_com = str(ether_com.community_ether_id)
    ether_user = EtherUser.objects.get(user=request.user)
    ether_user = str(ether_user.user_ether_id)
    validUntil = int(time())+28800
    result = epclient.createSession(ether_com, ether_user, validUntil)
    return result['sessionID']
示例#2
0
def create_session_group(request, group_id):
    epclient = EtherpadLiteClient(settings.APIKEY, settings.APIURL)
    ether_group = EtherGroup.objects.get(group=group_id)
    ether_group = str(ether_group.group_ether_id)
    ether_user = EtherUser.objects.get(user=request.user)
    ether_user = str(ether_user.user_ether_id)
    validUntil = int(time()) + 28800
    result = epclient.createSession(ether_group, ether_user, validUntil)
    return result['sessionID']
示例#3
0
def pad(request, pk=None, slug=None):
    """Create and session and display an embedded pad
    """

    # Initialize some needed values
    if slug:
        pad = get_object_or_404(Pad, name=slug)
    else:
        pad = get_object_or_404(Pad, pk=pk)
    padLink = pad.server.url + 'p/' + pad.group.groupID + '$' + \
        urllib.quote_plus(pad.name)
    server = urlparse(pad.server.url)
    author = PadAuthor.objects.get(user=request.user)

    if author not in pad.group.authors.all():
        response = render_to_response(
            'pad.html',
            {
                'pad': pad,
                'link': padLink,
                'server': server,
                'uname': author.user.__unicode__(),
                'error': _('You are not allowed to view or edit this pad')
            },
            context_instance=RequestContext(request)
        )
        return response

    # Create the session on the etherpad-lite side
    expires = datetime.datetime.utcnow() + datetime.timedelta(
        seconds=config.SESSION_LENGTH
    )
    epclient = EtherpadLiteClient(pad.server.apikey, pad.server.apiurl)

    try:
        result = epclient.createSession(
            pad.group.groupID,
            author.authorID,
            time.mktime(expires.timetuple()).__str__()
        )
    except Exception, e:
        response = render_to_response(
            'pad.html',
            {
                'pad': pad,
                'link': padLink,
                'server': server,
                'uname': author.user.__unicode__(),
                'error': _('etherpad-lite session request returned:') +
                ' "' + e.reason + '"'
            },
            context_instance=RequestContext(request)
        )
        return response
示例#4
0
class Etherpad:
    def __init__(self):
        self.epclient = EtherpadLiteClient(settings.APIKEY, settings.APIURL)

    def create_ether_blog(self, blog):
        groupid = self.epclient.createGroupIfNotExistsFor(str(blog.uuid))
        padid = self.epclient.createGroupPad(groupid['groupID'], blog.pk)
        blog = EtherBlog.objects.create(blog=blog,
                                        etherid=padid['padID'],
                                        groupid=groupid['groupID'])
        return blog

    def create_ether_user(self, user):
        result = self.epclient.createAuthorIfNotExistsFor(
            user.id, user.username)
        user = EtherUser.objects.create(user=user,
                                        user_ether_id=result['authorID'])
        return user

    def create_session_group(self, request, groupid):
        ethergroup = str(groupid)
        try:
            etheruser = EtherUser.objects.get(user=request.user)
        except Exception:
            etheruser = self.create_ether_user(request.user)
        etheruser = str(etheruser.user_ether_id)
        validUntil = int(time()) + 28800
        result = self.epclient.createSession(ethergroup, etheruser, validUntil)
        return result['sessionID']

    def getHTML(self, blog):
        blog = EtherBlog.objects.get(blog=blog)
        result = self.epclient.getHtml(blog.etherid)
        return result['html']

    def getText(self, blog):
        blog = EtherBlog.objects.get(blog=blog)
        result = self.epclient.getText(blog.etherid)
        return result['text']

    def deletePad(self, blog):
        article = EtherBlog.objects.get(blog=blog)
        self.epclient.deletePad(blog.etherid)
        return

    def get_pad_usercount(self, blog):
        count = self.epclient.padUsersCount(blog.etherid)
        return count['padUsersCount']

    def get_read_only_padid(self, blog):
        readonly = self.epclient.getReadOnlyID(blog.etherid)
        return readonly['readOnlyID']
示例#5
0
def pad(request, pk):
    """Create and session and display an embedded pad
    """

    # Initialize some needed values
    pad = get_object_or_404(Pad, pk=pk)
    padLink = pad.server.url + 'p/' + pad.group.groupID + '$' + \
        urllib.quote_plus(pad.name)
    server = urlparse(pad.server.url)
    author = PadAuthor.objects.get(user=request.user)

    if author not in pad.group.authors.all():
        response = render_to_response(
            'etherpad-lite/pad.html', {
                'pad': pad,
                'link': padLink,
                'server': server,
                'uname': author.user.__unicode__(),
                'error': _('You are not allowed to view or edit this pad')
            },
            context_instance=RequestContext(request))
        return response

    # Create the session on the etherpad-lite side
    expires = datetime.datetime.utcnow() + datetime.timedelta(
        seconds=config.SESSION_LENGTH)
    epclient = EtherpadLiteClient(pad.server.apikey, pad.server.apiurl)

    try:
        result = epclient.createSession(
            pad.group.groupID, author.authorID,
            time.mktime(expires.timetuple()).__str__())
    except Exception, e:
        response = render_to_response('etherpad-lite/pad.html', {
            'pad':
            pad,
            'link':
            padLink,
            'server':
            server,
            'uname':
            author.user.__unicode__(),
            'error':
            _('etherpad-lite session request returned:') + ' "' + e.reason +
            '"'
        },
                                      context_instance=RequestContext(request))
        return response
示例#6
0
def pad(request, pk):
    """Create and session and display an embedded pad
    """

    # Initialize some needed values
    pad = get_object_or_404(Pad, pk=pk)
    padLink = pad.server.url + 'p/' + pad.group.groupID + '$' + \
        urllib.parse.quote_plus(pad.name)
    server = urlparse(pad.server.url)
    author = PadAuthor.objects.get(user=request.user)

    # if author not in pad.group.authors.all():
    #     return render(
    #         request,
    #         'pad.html',
    #         {
    #             'pad': pad,
    #             'link': padLink,
    #             'server': server,
    #             'uname': author.user.__unicode__(),
    #             'error': _('You are not allowed to view or edit this pad')
    #         }
    #     )
    # Create the session on the etherpad-lite side
    expires = datetime.datetime.utcnow() + datetime.timedelta(
        seconds=config.SESSION_LENGTH)
    epclient = EtherpadLiteClient(pad.server.apikey, pad.server.apiurl)

    try:
        result = epclient.createSession(
            pad.group.groupID, author.authorID,
            time.mktime(expires.timetuple()).__str__())
    except Exception as e:
        return render(
            request, 'pad.html', {
                'pad':
                pad,
                'link':
                padLink,
                'server':
                server,
                'uname':
                author.user.__str__(),
                'error':
                _('etherpad-lite session request returned:') + ' "' + str(e) +
                '"'
            })

    response = render(
        request, 'pad.html', {
            'pad': pad,
            'link': padLink,
            'server': server,
            'uname': author.user.__str__(),
            'error': False
        })

    # Delete the existing session first
    if ('padSessionID' in request.COOKIES):
        epclient.deleteSession(request.COOKIES['sessionID'])
        response.delete_cookie('sessionID', server.hostname)
        response.delete_cookie('padSessionID')

    # Set the new session cookie for both the server and the local site
    response.set_cookie(key='sessionID',
                        value=result['sessionID'],
                        expires=expires,
                        httponly=False)
    response.set_cookie(key='padSessionID',
                        value=result['sessionID'],
                        expires=expires,
                        httponly=False)
    # request.session['sessionID']= result['sessionID']
    # request.session['padSessionID']= result['sessionID']
    # request.set_expiry(expires)
    return response
示例#7
0
def pad(request, pk):
    """Create and session and display an embedded pad
    """

    # Initialize some needed values
    pad = get_object_or_404(Pad, pk=pk)
    server = urlparse(pad.server.url)
    author = PadAuthor.objects.get(user=request.user)

    if author not in pad.group.authors.all():
        response = render_to_response(
            'etherpad-lite/pad.html',
            {
                'pad': pad,
                'link': pad.link,
                'server': server,
                'uname': author.user.__unicode__(),
                'error': _('You are not allowed to view or edit this pad')
            },
            context_instance=RequestContext(request)
        )
        return response

    # Create the session on the etherpad-lite side
    expires = datetime.datetime.utcnow() + datetime.timedelta(
        seconds=config.SESSION_LENGTH
    )
    epclient = EtherpadLiteClient(pad.server.apikey, pad.server.apiurl)

    default_author_name_mapper = lambda user: user.__unicode__()
    author_name_mapper = getattr(settings, 'ETHERPAD_AUTHOR_NAME_MAPPER', default_author_name_mapper)

    default_etherpad_settings = {
        "showControls": True,
        "showChat": True,
        "alwaysShowChat": False,
        "showLineNumbers": False,
        "useMonospaceFont": False,
        "noColors": False,
        "hideQRCode": True,
        "rtl": False,
        "userName": author_name_mapper(author.user).encode('utf-8'),
    }

    pad_settings = default_etherpad_settings
    pad_settings.update(getattr(settings, 'ETHERPAD_SETTINGS', {}))

    for key, value in pad_settings.items():
        if value == True:
            pad_settings[key] = 'true'
        elif value == False:
            pad_settings[key] = 'false'

    try:
        result = epclient.createSession(
            pad.group.groupID,
            author.authorID,
            time.mktime(expires.timetuple()).__str__()
        )
    except Exception, e:
        response = render_to_response(
            'etherpad-lite/pad.html',
            {
                'pad': pad,
                'link': pad.link,
                'server': server,
                'querystring': urllib.urlencode(pad_settings).replace('+', ' '),
                'error': _('etherpad-lite session request returned:') +
                ' "' + e.reason + '"'
            },
            context_instance=RequestContext(request)
        )
        return response