Files
@ 1ef52a70f3b7
Branch filter:
Location: kallithea/pylons_app/config/routing.py - annotation
1ef52a70f3b7
6.5 KiB
text/x-python
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 752675cdd167 564e40829f80 2e1247e62c5b 564e40829f80 2e1247e62c5b 2e1247e62c5b 564e40829f80 2e1247e62c5b 564e40829f80 564e40829f80 564e40829f80 2e1247e62c5b 2e1247e62c5b 564e40829f80 564e40829f80 9a2affee4a45 f6ac79182600 8f7b8e965fe4 8f7b8e965fe4 8f7b8e965fe4 8f7b8e965fe4 8f7b8e965fe4 8f7b8e965fe4 8f7b8e965fe4 8f7b8e965fe4 8f7b8e965fe4 fb7f066126cc 8026872a10ee fb7f066126cc fb7f066126cc fb7f066126cc fb7f066126cc fb7f066126cc fb7f066126cc fb7f066126cc fb7f066126cc fb7f066126cc fb7f066126cc fb7f066126cc d303aacb3349 8f7b8e965fe4 8f7b8e965fe4 d303aacb3349 8f7b8e965fe4 8f7b8e965fe4 d303aacb3349 8f7b8e965fe4 8f7b8e965fe4 d303aacb3349 8f7b8e965fe4 8f7b8e965fe4 d303aacb3349 8f7b8e965fe4 8f7b8e965fe4 d303aacb3349 8f7b8e965fe4 8f7b8e965fe4 d303aacb3349 d303aacb3349 8f7b8e965fe4 8f7b8e965fe4 d303aacb3349 8026872a10ee 8026872a10ee e00dccb6f211 2968fb635787 8026872a10ee 43b229a8d782 b3c93efd1c97 b3c93efd1c97 cdf4fda66dd9 66b20f525750 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 66b20f525750 8026872a10ee 55c875d8608b 55c875d8608b cdf4fda66dd9 8026872a10ee fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 05b212954275 05b212954275 05b212954275 05b212954275 05b212954275 05b212954275 05b212954275 05b212954275 564e40829f80 | """Routes configuration
The more specific and detailed routes should be defined first so they
may take precedent over the more generic routes. For more information
refer to the routes manual at http://routes.groovie.org/docs/
"""
from routes import Mapper
from pylons_app.lib.utils import check_repo_fast as cr
def make_map(config):
"""Create, configure and return the routes Mapper"""
map = Mapper(directory=config['pylons.paths']['controllers'],
always_scan=config['debug'])
map.minimization = False
map.explicit = False
# The ErrorController route (handles 404/500 error pages); it should
# likely stay at the top, ensuring it can always be resolved
map.connect('/error/{action}', controller='error')
map.connect('/error/{action}/{id}', controller='error')
# CUSTOM ROUTES HERE
map.connect('hg_home', '/', controller='hg', action='index')
def check_repo(environ, match_dict):
"""
check for valid repository for proper 404 handling
@param environ:
@param match_dict:
"""
repo_name = match_dict.get('repo_name')
return not cr(repo_name, config['base_path'])
#REST routes
with map.submapper(path_prefix='/_admin', controller='pylons_app.controllers.admin.repos:ReposController') as m:
m.connect("repos", "/repos",
action="create", conditions=dict(method=["POST"]))
m.connect("repos", "/repos",
action="index", conditions=dict(method=["GET"]))
m.connect("formatted_repos", "/repos.{format}",
action="index",
conditions=dict(method=["GET"]))
m.connect("new_repo", "/repos/new",
action="new", conditions=dict(method=["GET"]))
m.connect("formatted_new_repo", "/repos/new.{format}",
action="new", conditions=dict(method=["GET"]))
m.connect("/repos/{repo_name:.*}",
action="update", conditions=dict(method=["PUT"],
function=check_repo))
m.connect("/repos/{repo_name:.*}",
action="delete", conditions=dict(method=["DELETE"],
function=check_repo))
m.connect("edit_repo", "/repos/{repo_name:.*}/edit",
action="edit", conditions=dict(method=["GET"],
function=check_repo))
m.connect("formatted_edit_repo", "/repos/{repo_name:.*}.{format}/edit",
action="edit", conditions=dict(method=["GET"],
function=check_repo))
m.connect("repo", "/repos/{repo_name:.*}",
action="show", conditions=dict(method=["GET"],
function=check_repo))
m.connect("formatted_repo", "/repos/{repo_name:.*}.{format}",
action="show", conditions=dict(method=["GET"],
function=check_repo))
#ajax delete repo perm user
m.connect('delete_repo_user', "/repos_delete_user/{repo_name:.*}",
action="delete_perm_user", conditions=dict(method=["DELETE"],
function=check_repo))
map.resource('user', 'users', controller='pylons_app.controllers.admin.users:UsersController', path_prefix='/_admin')
map.resource('permission', 'permissions', controller='pylons_app.controllers.admin.permissions:PermissionsController', path_prefix='/_admin')
#ADMIN
with map.submapper(path_prefix='/_admin', controller='pylons_app.controllers.admin.admin:AdminController') as m:
m.connect('admin_home', '', action='index')#main page
m.connect('admin_add_repo', '/add_repo/{new_repo:[a-z0-9\. _-]*}',
action='add_repo')
#FEEDS
map.connect('rss_feed_home', '/{repo_name:.*}/feed/rss',
controller='feed', action='rss',
conditions=dict(function=check_repo))
map.connect('atom_feed_home', '/{repo_name:.*}/feed/atom',
controller='feed', action='atom',
conditions=dict(function=check_repo))
#LOGIN/LOGOUT
map.connect('login_home', '/login', controller='login')
map.connect('logout_home', '/logout', controller='login', action='logout')
#OTHERS
map.connect('changeset_home', '/{repo_name:.*}/changeset/{revision}',
controller='changeset', revision='tip',
conditions=dict(function=check_repo))
map.connect('summary_home', '/{repo_name:.*}/summary',
controller='summary', conditions=dict(function=check_repo))
map.connect('shortlog_home', '/{repo_name:.*}/shortlog',
controller='shortlog', conditions=dict(function=check_repo))
map.connect('branches_home', '/{repo_name:.*}/branches',
controller='branches', conditions=dict(function=check_repo))
map.connect('tags_home', '/{repo_name:.*}/tags',
controller='tags', conditions=dict(function=check_repo))
map.connect('changelog_home', '/{repo_name:.*}/changelog',
controller='changelog', conditions=dict(function=check_repo))
map.connect('files_home', '/{repo_name:.*}/files/{revision}/{f_path:.*}',
controller='files', revision='tip', f_path='',
conditions=dict(function=check_repo))
map.connect('files_diff_home', '/{repo_name:.*}/diff/{f_path:.*}',
controller='files', action='diff', revision='tip', f_path='',
conditions=dict(function=check_repo))
map.connect('files_raw_home', '/{repo_name:.*}/rawfile/{revision}/{f_path:.*}',
controller='files', action='rawfile', revision='tip', f_path='',
conditions=dict(function=check_repo))
map.connect('files_annotate_home', '/{repo_name:.*}/annotate/{revision}/{f_path:.*}',
controller='files', action='annotate', revision='tip', f_path='',
conditions=dict(function=check_repo))
map.connect('files_archive_home', '/{repo_name:.*}/archive/{revision}/{fileformat}',
controller='files', action='archivefile', revision='tip',
conditions=dict(function=check_repo))
map.connect('repo_settings_update', '/{repo_name:.*}/settings',
controller='settings', action="update",
conditions=dict(method=["PUT"], function=check_repo))
map.connect('repo_settings_home', '/{repo_name:.*}/settings',
controller='settings', action='index',
conditions=dict(function=check_repo))
return map
|