Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ThiefMaster/lodgeit
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: truveris/lodgeit
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Able to merge. These branches can be automatically merged.
  • 2 commits
  • 3 files changed
  • 2 contributors

Commits on Jul 22, 2015

  1. added support for usernames from header

    7thStreet committed Jul 22, 2015
    Copy the full SHA
    27d4fcf View commit details

Commits on Jul 30, 2015

  1. added username support

    small-pants committed Jul 30, 2015
    Copy the full SHA
    f8395e5 View commit details
Showing with 20 additions and 13 deletions.
  1. +14 −8 lodgeit/controllers/pastes.py
  2. +2 −3 lodgeit/lib/webapi.py
  3. +4 −2 lodgeit/models.py
22 changes: 14 additions & 8 deletions lodgeit/controllers/pastes.py
Original file line number Diff line number Diff line change
@@ -10,6 +10,8 @@
"""
from werkzeug import redirect, Response
from werkzeug.exceptions import NotFound
from werkzeug.wrappers import BaseRequest
from werkzeug.wrappers import Request
from lodgeit import local
from lodgeit.lib import antispam
from lodgeit.i18n import list_languages as i18n_list_languages, _
@@ -26,6 +28,7 @@ class PasteController(object):

def new_paste(self, language=None):
"""The 'create a new paste' view."""

language = local.request.args.get('language', language)
if language is None:
language = local.request.session.get('language', 'text')
@@ -35,7 +38,8 @@ def new_paste(self, language=None):
parent = None
req = local.request
getform = req.form.get

username = req.authorization.username

if local.request.method == 'POST':
code = getform('code', u'')
language = getform('language')
@@ -56,13 +60,12 @@ def new_paste(self, language=None):
'CAPTCHA solution was incorrect')
show_captcha = True
if code and language and not error:
paste = Paste(code, language, parent, req.user_hash,
'private' in req.form)
db.session.add(paste)
db.session.commit()
local.request.session['language'] = language
return redirect(paste.url)

paste = Paste(username, code, language, parent, req.user_hash,
'private' in req.form )
db.session.add(paste)
db.session.commit()
local.request.session['language'] = language
return redirect(paste.url)
else:
if local.request.args.get('private', '0') != '0':
private = True
@@ -73,6 +76,7 @@ def new_paste(self, language=None):
code = parent.code
language = parent.language
private = parent.private


return render_to_response('new_paste.html',
languages=list_languages(),
@@ -82,6 +86,7 @@ def new_paste(self, language=None):
error=error,
show_captcha=show_captcha,
private=private

)

def show_paste(self, identifier, raw=False):
@@ -192,3 +197,4 @@ def show_captcha(self):


controller = PasteController

5 changes: 2 additions & 3 deletions lodgeit/lib/webapi.py
Original file line number Diff line number Diff line change
@@ -62,7 +62,7 @@ def system_list_methods():


@exported('pastes.newPaste')
def pastes_new_paste(language, code, parent_id=None,
def pastes_new_paste(language, code, username, parent_id=None,
filename='', mimetype='', private=False):
"""Create a new paste. Return the new ID.
@@ -82,14 +82,13 @@ def pastes_new_paste(language, code, parent_id=None,
db.session.commit()
return paste.identifier


@exported('pastes.getPaste')
def pastes_get_paste(paste_id):
"""Get all known information about a paste by a given paste id.
Return a dictionary with these keys:
`paste_id`, `code`, `parsed_code`, `pub_date`, `language`,
`parent_id`, `url`.
`parent_id`, `url`, `username`.
"""
paste = Paste.get(paste_id)
if paste is not None:
6 changes: 4 additions & 2 deletions lodgeit/models.py
Original file line number Diff line number Diff line change
@@ -32,13 +32,14 @@ class Paste(db.Model):
user_hash = db.Column(db.String(40), nullable=True)
handled = db.Column(db.Boolean)
private_id = db.Column(db.String(40), unique=True, nullable=True)
username = db.Column(db.String(40)) #adds a new column to db

children = db.relation('Paste', cascade='all',
primaryjoin=parent_id == paste_id,
backref=db.backref('parent', remote_side=[paste_id]))

def __init__(self, code, language, parent=None, user_hash=None,
private=False):
def __init__(self, username, code, language, parent=None,
user_hash=None, private=False):
if language not in LANGUAGES:
language = 'text'
self.code = u'\n'.join(code.splitlines())
@@ -51,6 +52,7 @@ def __init__(self, code, language, parent=None, user_hash=None,
self.handled = False
self.user_hash = user_hash
self.private = private
self.username = username

@staticmethod
def get(identifier):