示例#1
0
def open_sharing_view(request):
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST["id"])
    if not padmember or not padmember.check_access("read"):
        return jsonify(success=False)

    return jsonify(success=True, sharing=srender("share/pad.jinja", members=padmember.pad.get_members_in_order()))
示例#2
0
def title_view(request):
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST["id"])
    if not padmember or not padmember.check_access("read"):
        return jsonify(success=False)
    pad = padmember.pad
    return jsonify(
        success=True, title=pad.title, title_author=pad.title_author.user.username, title_modified=pad.title_modified
    )
示例#3
0
def read_view(request):
    'Read an etherpad-lite pad'
    author = Author.get_by_user(request.user)
    member = author.get_padmember(request.POST['id'])
    if not member or not member.check_access('write'):
        return jsonify(success=False)

    # TODO
    return jsonify(success=True) 
示例#4
0
def read_view(request):
    'Read an etherpad-lite pad'
    author = Author.get_by_user(request.user)
    member = author.get_padmember(request.POST['id'])
    if not member or not member.check_access('write'):
        return jsonify(success=False)

    # TODO
    return jsonify(success=True)
示例#5
0
def respond_view(request):
    author = Author.get_by_user(request.user)
    invite = author.invites.filter(id=request.POST['id']).first()
    if not invite:
        return jsonify(success=False)

    if request.POST['accept'] == 'true':
        padmember = PadMember(pad=invite.pad, role=invite.role, author=author)
        padmember.save()
    invite.delete()
    return jsonify(success=True)
示例#6
0
def respond_view(request):
    author = Author.get_by_user(request.user)
    invite = author.invites.filter(id=request.POST['id']).first()
    if not invite:
        return jsonify(success=False)

    if request.POST['accept'] == 'true':
        padmember = PadMember(pad=invite.pad, role=invite.role, author=author)
        padmember.save()
    invite.delete()
    return jsonify(success=True)
示例#7
0
def title_view(request):
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST['id'])
    if not padmember or not padmember.check_access('read'):
        return jsonify(success=False)
    pad = padmember.pad
    return jsonify(
        success=True,
        title=pad.title,
        title_author=pad.title_author.user.username,
        #title_modified=pad.title_modified
    )
示例#8
0
def open_sharing_view(request):
    'Returns the sharing html for a pad'
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST['id'])
    if not padmember or not padmember.check_access('read'):
        return jsonify(success=False)
    invites = padmember.pad.get_invites_in_order()

    return jsonify(success=True,
                   sharing=srender(
                       'share/pad.jinja',
                       members=padmember.pad.get_members_in_order(),
                       invites=invites))
示例#9
0
def open_sharing_view(request):
    'Returns the sharing html for a pad'
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST['id'])
    if not padmember or not padmember.check_access('read'):
        return jsonify(success=False)
    invites = padmember.pad.get_invites_in_order()

    return jsonify(
        success=True,
        sharing=srender('share/pad.jinja', 
            members=padmember.pad.get_members_in_order(),
            invites=invites
        ))
示例#10
0
def set_title_view(request):
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST["id"])
    if not padmember or not padmember.check_access("write"):
        return jsonify(success=False)

    pad = padmember.pad
    pad.title = request.POST["title"]
    pad.title_author = author
    pad.title_modified = datetime.today()
    pad.save()

    e = get_etherpad_client()
    e.sendClientsMessage(padID=pad.padid, msg="title_update")
    return jsonify(success=True)
示例#11
0
def open_view(request):
    author = Author.get_by_user(request.user)
    member = author.get_padmember(request.POST["id"])
    if not member or not member.check_access("write"):
        return jsonify(success=False)

    return open_etherpad(member.pad, author, epoch_time(7 * 24 * 60 ** 2))
示例#12
0
def set_title_view(request):
    "Set a pad's and broadcast to active authors"
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST['id'])
    if not padmember or not padmember.check_access('write'):
        return jsonify(success=False)

    pad = padmember.pad
    pad.title = request.POST['title']
    pad.title_author = author
    pad.title_modified = datetime.today()
    pad.save()

    e = get_etherpad_client()
    e.sendClientsMessage(padID=pad.padid, msg='title_update')
    return jsonify(success=True)
示例#13
0
def set_title_view(request):
    "Set a pad's and broadcast to active authors"
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST['id'])
    if not padmember or not padmember.check_access('write'):
        return jsonify(success=False)

    pad = padmember.pad
    pad.title = request.POST['title']
    pad.title_author = author
    pad.title_modified = datetime.today()
    pad.save()

    e = get_etherpad_client()
    e.sendClientsMessage(padID=pad.padid, msg='title_update')
    return jsonify(success=True)
示例#14
0
def logout_view(request):
    logout(request)

    return jsonify(
        success=True, 
        navbar=srender('user/navbar.jinja')
    )
示例#15
0
def open_view(request):
    'Open an etherpad-lite pad for writing'
    author = Author.get_by_user(request.user)
    member = author.get_padmember(request.POST['id'])
    if not member or not member.check_access('write'):
        return jsonify(success=False)

    return open_etherpad(member.pad, author, epoch_time(7 * 24 * 60**2))
示例#16
0
def share_view(request):
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST["id"])
    if not padmember or not padmember.check_access("admin"):
        return jsonify(success=False)

    acl = dict(owner=["admin", "write", "read"], admin=["write", "read"])
    if request.POST["access"] not in acl[padmember.role]:
        return jsonify(success=False)

    members = request.POST["members"].split(",")
    for member in members:
        to = Author.get_by_username(member)
        invite = Invite(pad=padmember.pad, role=request.POST["access"], to=to, sender=author)
        invite.save()

    return jsonify(success=True)
示例#17
0
def open_view(request):
    'Open an etherpad-lite pad for writing'
    author = Author.get_by_user(request.user)
    member = author.get_padmember(request.POST['id'])
    if not member or not member.check_access('write'):
        return jsonify(success=False)

    return open_etherpad(member.pad, author, epoch_time(7 * 24 * 60**2))
示例#18
0
def share_view(request):
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST['id'])
    if not padmember or not padmember.check_access('admin'):
        return jsonify(success=False)

    acl = dict(owner=['admin', 'write', 'read'], admin=['write', 'read'])
    if request.POST['access'] not in acl[padmember.role]:
        return jsonify(success=False)

    members = request.POST['members'].split(',')
    for member in members:
        to = Author.get_by_username(member)
        invite = Invite(pad=padmember.pad,
                        role=request.POST['access'],
                        to=to,
                        sender=author)
        invite.save()

    return jsonify(success=True)
示例#19
0
def share_view(request):
    author = Author.get_by_user(request.user)
    padmember = author.get_padmember(request.POST['id'])
    if not padmember or not padmember.check_access('admin'):
        return jsonify(success=False)

    acl = dict(owner=['admin','write','read'], admin=['write','read'])
    if request.POST['access'] not in acl[padmember.role]:
        return jsonify(success=False)      
          
    members = request.POST['members'].split(',')
    for member in members:
        to = Author.get_by_username(member)
        invite = Invite(
            pad=padmember.pad, 
            role=request.POST['access'], 
            to=to,
            sender=author)
        invite.save()

    return jsonify(success=True)
示例#20
0
def login_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user:
        login(request, user)
    else:
        return jsonerror()        
    author = Author.get_by_user(request.user)
    return jsonify(
        success=True, 
        navbar=srender('user/navbar.jinja', user=user),
        home=srender('user/home.jinja', author=author))
示例#21
0
def login_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user:
        login(request, user)
    else:
        return jsonerror()        
    author = Author.get_by_user(request.user)
    return jsonify(
        success=True, 
        navbar=srender('user/navbar.jinja', user=user),
        home=srender('user/home.jinja', author=author))
示例#22
0
def open_etherpad(pad, author, validUntil, e=None, **kwargs):
    if not e:
        e = get_etherpad_client()
    data = e.createSession(
        groupID=pad.groupid,
        authorID=author.etherpad_id,
        validUntil=validUntil)
    response = jsonify(
        success=True,
        pad='%s/p/%s' % (settings.ETHERPAD_URL, pad.padid),
        title=pad.title,
        **kwargs)
    set_cookie(response, 'sessionID', data['sessionID'])
    return response
示例#23
0
def open_etherpad(pad, author, validUntil, etherpad=None, **kwargs):
    """
    Opens an etherpad-lite document. The etherpad client is used
    to get a cookie for a session on the pad.
    """
    if not etherpad:
        etherpad = get_etherpad_client()
    data = etherpad.createSession(groupID=pad.groupid,
                                  authorID=author.etherpad_id,
                                  validUntil=validUntil)
    response = jsonify(success=True,
                       pad='%s/p/%s' % (settings.ETHERPAD_URL, pad.padid),
                       title=pad.title,
                       **kwargs)
    set_cookie(response, 'sessionID', data['sessionID'])
    return response
示例#24
0
def open_etherpad(pad, author, validUntil, etherpad=None, **kwargs):
    """
    Opens an etherpad-lite document. The etherpad client is used
    to get a cookie for a session on the pad.
    """
    if not etherpad:
        etherpad = get_etherpad_client()
    data = etherpad.createSession(
        groupID=pad.groupid,
        authorID=author.etherpad_id,
        validUntil=validUntil
    )
    response = jsonify(
        success=True,
        pad='%s/p/%s' % (settings.ETHERPAD_URL, pad.padid),
        title=pad.title,
        **kwargs
    )
    set_cookie(response, 'sessionID', data['sessionID'])
    return response
示例#25
0
def search_users_view(request):
    search = User.objects.filter(username__icontains=request.GET['q'])
    users = [user.username for user in search]
    return jsonify(users)
示例#26
0
def search_users_view(request):
    search = User.objects.filter(username__icontains=request.GET['q'])
    users = [user.username for user in search]
    return jsonify(users)
示例#27
0
def logout_view(request):
    logout(request)
    return jsonify(
        success=True, 
        navbar=srender('user/navbar.jinja')
    )