Skip to content

Commit

Permalink
Backed out changeset 98caf1bc6f22
Browse files Browse the repository at this point in the history
  • Loading branch information
joewalker committed May 4, 2009
1 parent fce10f0 commit 1f074d0
Show file tree
Hide file tree
Showing 15 changed files with 1,866 additions and 1,761 deletions.
1 change: 1 addition & 0 deletions .hgignore
Expand Up @@ -33,4 +33,5 @@ backend/python/testfiles
.settings/
.externalToolBuilders/
devconfig.py
nbproject/

68 changes: 34 additions & 34 deletions backend/python/bespin/controllers.py
Expand Up @@ -28,16 +28,17 @@
import logging
from datetime import date

from urlrelay import URLRelay, url, register
from urlrelay import URLRelay, register
from paste.auth import auth_tkt
import simplejson
import tempfile
from webob import Request, Response
from webob import Request

from bespin.config import c
from bespin.framework import expose, BadRequest
from bespin import model, vcs
from bespin.model import User, NotAuthorized
from bespin import vcs
from bespin.database import User, get_project
from bespin.filesystem import NotAuthorized, OverQuota, File
from bespin.mobwrite.mobwrite_daemon import MobwriteWorker
from bespin.mobwrite.mobwrite_daemon import Persister
import socket
Expand All @@ -54,9 +55,8 @@ def new_user(request, response):
except KeyError:
raise BadRequest("username, email and password are required.")
user = User.create_user(username, password, email)

settings_project = model.get_project(user, user,
"BespinSettings", create=True)

settings_project = get_project(user, user, "BespinSettings", create=True)
settings_project.install_template('usertemplate')
response.content_type = "application/json"
response.body = "{}"
Expand Down Expand Up @@ -166,7 +166,7 @@ def putfile(request, response):
user = request.user

owner, project, path = _split_path(request)
project = model.get_project(user, owner, project, create=True)
project = get_project(user, owner, project, create=True)

if path:
project.save_file(path, request.body)
Expand All @@ -177,7 +177,7 @@ def getfile(request, response):
user = request.user

owner, project, path = _split_path(request)
project = model.get_project(user, owner, project)
project = get_project(user, owner, project)

mode = request.GET.get('mode', 'rw')
contents = project.get_file(path, mode)
Expand All @@ -189,7 +189,7 @@ def postfile(request, response):
user = request.user

owner, project, path = _split_path(request)
project = model.get_project(user, owner, project)
project = get_project(user, owner, project)

project.close(path)
return response()
Expand All @@ -199,7 +199,7 @@ def deletefile(request, response):
user = request.user

owner, project, path = _split_path(request)
project = model.get_project(user, owner, project)
project = get_project(user, owner, project)

project.delete(path)
return response()
Expand All @@ -225,7 +225,7 @@ def listfiles(request, response):
path = ''

if project:
project = model.get_project(user, owner, project)
project = get_project(user, owner, project)

files = project.list_files(path)

Expand All @@ -241,7 +241,7 @@ def install_template(request, response):
user = request.user
project_name = request.kwargs['project_name']
template_name = request.body
project = model.get_project(user, user, project_name, create=True)
project = get_project(user, user, project_name, create=True)
project.install_template(template_name)
response.content_type = "text/plain"
response.body = ""
Expand All @@ -251,7 +251,7 @@ def install_template(request, response):
def file_list_all(request, response):
user = request.user
project_name = request.kwargs['project_name']
project = model.get_project(user, user, project_name)
project = get_project(user, user, project_name)
metadata = project.metadata

files = metadata.get_file_list()
Expand All @@ -270,12 +270,12 @@ def file_search(request, response):
limit = 20
project_name = request.kwargs['project_name']

project = model.get_project(user, user, project_name)
project = get_project(user, user, project_name)
result = project.search_files(query, limit)
return _respond_json(response, result)

def _populate_stats(item, result):
if isinstance(item, model.File):
if isinstance(item, File):
result['size'] = item.saved_size
result['created'] = item.created.strftime("%Y%m%dT%H%M%S")
result['modified'] = item.modified.strftime("%Y%m%dT%H%M%S")
Expand All @@ -286,7 +286,7 @@ def filestats(request, response):
user = request.user

owner, project, path = _split_path(request)
project = model.get_project(user, owner, project)
project = get_project(user, owner, project)

file_obj = project.get_file_object(path)
result = {}
Expand All @@ -301,7 +301,7 @@ def filestats(request, response):
# user = request.user
#
# owner, project, path = _split_path(request)
# project = model.get_project(user, owner, project, create=True)
# project = get_project(user, owner, project, create=True)
#
# fm.save_edit(user, project, path, request.body)
# return response()
Expand Down Expand Up @@ -367,7 +367,7 @@ def import_project(request, response):
return response()

def _perform_import(user, project_name, filename, fileobj):
project = model.get_project(user, user, project_name, clean=True)
project = get_project(user, user, project_name, clean=True)
if filename.endswith(".tgz") or filename.endswith(".tar.gz"):
func = project.import_tarball
elif filename.endswith(".zip"):
Expand Down Expand Up @@ -400,7 +400,7 @@ def import_from_url(request, response):
if content_length:
content_length = int(content_length)
if not request.user.check_save(content_length):
raise model.OverQuota()
raise OverQuota()

try:
datafile = urllib2.urlopen(url)
Expand All @@ -423,7 +423,7 @@ def export_project(request, response):
project_name = request.kwargs['project_name']
project_name, extension = os.path.splitext(project_name)

project = model.get_project(user, user, project_name)
project = get_project(user, user, project_name)

if extension == ".zip":
func = project.export_zipfile
Expand All @@ -447,7 +447,7 @@ def preview_file(request, response):
user = request.user

owner, project, path = _split_path(request)
project = model.get_project(user, owner, project)
project = get_project(user, owner, project)

file_obj = project.get_file_object(path)
response.body = str(file_obj.data)
Expand All @@ -459,7 +459,7 @@ def rename_project(request, response):
user = request.user

project_name = request.kwargs['project_name']
project = model.get_project(user, user, project_name)
project = get_project(user, user, project_name)
project.rename(request.body)
response.body = ""
response.content_type = "text/plain"
Expand Down Expand Up @@ -562,37 +562,37 @@ def share_list_all(request, response):
@expose(r'^/share/list/(?P<project>[^/]+)/$', 'GET')
def share_list_project(request, response):
"List sharing for a given project"
project = model.get_project(request.user, request.user, request.kwargs['project'])
project = get_project(request.user, request.user, request.kwargs['project'])
data = request.user.get_sharing(project)
return _respond_json(response, data)

@expose(r'^/share/list/(?P<project>[^/]+)/(?P<member>[^/]+)/$', 'GET')
def share_list_project_member(request, response):
"List sharing for a given project and member"
project = model.get_project(request.user, request.user, request.kwargs['project'])
project = get_project(request.user, request.user, request.kwargs['project'])
member = request.user.find_member(request.kwargs['member'])
data = request.user.get_sharing(project, member)
return _respond_json(response, data)

@expose(r'^/share/remove/(?P<project>[^/]+)/all/$', 'POST')
def share_remove_all(request, response):
"Remove all sharing from a project"
project = model.get_project(request.user, request.user, request.kwargs['project'])
project = get_project(request.user, request.user, request.kwargs['project'])
data = request.user.remove_sharing(project)
return _respond_json(response, data)

@expose(r'^/share/remove/(?P<project>[^/]+)/(?P<member>[^/]+)/$', 'POST')
def share_remove(request, response):
"Remove project sharing from a given member"
project = model.get_project(request.user, request.user, request.kwargs['project'])
project = get_project(request.user, request.user, request.kwargs['project'])
member = request.user.find_member(request.kwargs['member'])
data = request.user.remove_sharing(project, member)
return _respond_json(response, data)

@expose(r'^/share/add/(?P<project>[^/]+)/(?P<member>[^/]+)/$', 'POST')
def share_add(request, response):
"Add a member to the sharing list for a project"
project = model.get_project(request.user, request.user, request.kwargs['project'])
project = get_project(request.user, request.user, request.kwargs['project'])
member = request.user.find_member(request.kwargs['member'])
options = simplejson.loads(request.body)
request.user.add_sharing(project, member, options)
Expand Down Expand Up @@ -732,7 +732,7 @@ def vcs_command(request, response):
if vcs.is_new_project_command(args):
raise BadRequest("Use /vcs/clone/ to create a new project")
else:
project = model.get_project(user, user, project_name)
project = get_project(user, user, project_name)
jobid = vcs.run_command(user, project, args, kcpass)

response.content_type = "application/json"
Expand All @@ -744,7 +744,7 @@ def vcs_remoteauth(request, response):
user = request.user
project_name = request.kwargs['project_name']

project = model.get_project(user, user, project_name)
project = get_project(user, user, project_name)
metadata = project.metadata
value = metadata.get(vcs.AUTH_PROPERTY, "")

Expand All @@ -756,7 +756,7 @@ def vcs_remoteauth(request, response):
def keychain_setauth(request, response):
user = request.user
project_name = request.kwargs['project_name']
project = model.get_project(user, user, project_name)
project = get_project(user, user, project_name)

try:
kcpass = request.POST['kcpass']
Expand Down Expand Up @@ -877,13 +877,13 @@ def make_app():
from webob import Response
import static
static_app = static.Cling(c.static_dir)

docs_app = pathpopper_middleware(static.Cling(c.docs_dir))
code_app = pathpopper_middleware(static.Cling(c.static_dir + "/js"), 2)

register("^/docs/code/", code_app)
register("^/docs/", docs_app)

app = URLRelay(default=static_app)
app = auth_tkt.AuthTKTMiddleware(app, c.secret, secure=c.secure_cookie,
include_ip=False, httponly=True,
Expand Down

0 comments on commit 1f074d0

Please sign in to comment.