comparison pylons_app/controllers/files.py @ 191:b68b2246e5a6

Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user. Removed login form from admin.
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 22 May 2010 01:47:07 +0200
parents 0f7f93df5802
children 1a18994cdc3b
comparison
equal deleted inserted replaced
190:d8eb7ee27b4c 191:b68b2246e5a6
6 from pylons_app.lib.base import BaseController, render 6 from pylons_app.lib.base import BaseController, render
7 from pylons_app.lib.utils import get_repo_slug 7 from pylons_app.lib.utils import get_repo_slug
8 from pylons_app.model.hg_model import HgModel 8 from pylons_app.model.hg_model import HgModel
9 from vcs.utils import diffs as differ 9 from vcs.utils import diffs as differ
10 from vcs.exceptions import RepositoryError, ChangesetError 10 from vcs.exceptions import RepositoryError, ChangesetError
11 from pylons_app.lib.auth import LoginRequired
11 12
12 log = logging.getLogger(__name__) 13 log = logging.getLogger(__name__)
13 14
14 class FilesController(BaseController): 15 class FilesController(BaseController):
16
17 @LoginRequired()
15 def __before__(self): 18 def __before__(self):
16 c.repos_prefix = config['repos_name'] 19 super(FilesController, self).__before__()
17 c.repo_name = get_repo_slug(request)
18 20
19 def index(self, repo_name, revision, f_path): 21 def index(self, repo_name, revision, f_path):
20 hg_model = HgModel() 22 hg_model = HgModel()
21 c.repo = repo = hg_model.get_repo(c.repo_name) 23 c.repo = repo = hg_model.get_repo(c.repo_name)
22 revision = request.POST.get('at_rev', None) or revision 24 revision = request.POST.get('at_rev', None) or revision
68 response.content_type = file_node.mimetype 70 response.content_type = file_node.mimetype
69 response.content_disposition = 'attachment; filename=%s' \ 71 response.content_disposition = 'attachment; filename=%s' \
70 % f_path.split('/')[-1] 72 % f_path.split('/')[-1]
71 return file_node.content 73 return file_node.content
72 74
75 def annotate(self, repo_name, revision, f_path):
76 hg_model = HgModel()
77 c.repo = hg_model.get_repo(c.repo_name)
78 cs = c.repo.get_changeset(revision)
79 c.file = cs.get_node(f_path)
80 c.file_msg = cs.get_file_message(f_path)
81 c.cur_rev = cs.raw_id
82 c.f_path = f_path
83 c.annotate = cs.get_file_annotate(f_path)
84 return render('files/files_annotate.html')
85
73 def archivefile(self, repo_name, revision, fileformat): 86 def archivefile(self, repo_name, revision, fileformat):
74 return '%s %s %s' % (repo_name, revision, fileformat) 87 return '%s %s %s' % (repo_name, revision, fileformat)
75 88
76 def diff(self, repo_name, f_path): 89 def diff(self, repo_name, f_path):
77 hg_model = HgModel() 90 hg_model = HgModel()