From 703f48f1941ce0544bc37facafe551b97cb67707 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Fri, 10 Apr 2015 15:35:23 -0400 Subject: [PATCH] Add auto-redirect to user and org pages for the new layout --- endpoints/web.py | 58 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/endpoints/web.py b/endpoints/web.py index 9b4640c6c..b29ce52bd 100644 --- a/endpoints/web.py +++ b/endpoints/web.py @@ -38,8 +38,6 @@ STATUS_TAGS = app.config['STATUS_TAGS'] @web.route('/', methods=['GET'], defaults={'path': ''}) -@web.route('/organization/', methods=['GET']) -@web.route('/user/', methods=['GET']) @no_cache def index(path, **kwargs): return render_page_template('index.html', **kwargs) @@ -50,6 +48,18 @@ def internal_error_display(): return render_page_template('500.html') +@web.route('/organization/', methods=['GET']) +@no_cache +def org_view(path): + return index('') + + +@web.route('/user/', methods=['GET']) +@no_cache +def user_view(path): + return index('') + + @web.route('/snapshot', methods=['GET']) @web.route('/snapshot/', methods=['GET']) @web.route('/snapshot/', methods=['GET']) @@ -234,21 +244,6 @@ def robots(): return send_from_directory('static', 'robots.txt') -@web.route('/') -@no_cache -@process_oauth -@parse_repository_name_and_tag -def redirect_to_repository(namespace, reponame, tag): - permission = ReadRepositoryPermission(namespace, reponame) - is_public = model.repository_is_public(namespace, reponame) - - if permission.can() or is_public: - repository_name = '/'.join([namespace, reponame]) - return redirect(url_for('web.repository', path=repository_name, tag=tag)) - - abort(404) - - @web.route('/receipt', methods=['GET']) @route_show_if(features.BILLING) @require_session_login @@ -498,3 +493,32 @@ def download_logs_archive(): headers={"Content-Disposition": "attachment;filename=erlogs.tar.gz"}) abort(403) + + +@web.route('/') +@no_cache +@process_oauth +@parse_repository_name_and_tag +def redirect_to_repository(namespace, reponame, tag): + permission = ReadRepositoryPermission(namespace, reponame) + is_public = model.repository_is_public(namespace, reponame) + + if permission.can() or is_public: + repository_name = '/'.join([namespace, reponame]) + return redirect(url_for('web.repository', path=repository_name, tag=tag)) + + abort(404) + + +@web.route('/') +@no_cache +@process_oauth +def redirect_to_namespace(namespace): + user_or_org = model.get_user_or_org(namespace) + if not user_or_org: + abort(404) + + if user_or_org.organization: + return redirect(url_for('web.org_view', path=namespace)) + else: + return redirect(url_for('web.user_view', path=namespace))