Files
@ 05b212954275
Branch filter:
Location: kallithea/pylons_app/config/routing.py - annotation
05b212954275
6.3 KiB
text/x-python
Implemented owner settings, as separete posibility to edit repositry by non administrative owner of repository
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 | 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 fb7f066126cc 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 f6ac79182600 d982ed8e32d8 e00dccb6f211 2968fb635787 9a2affee4a45 43b229a8d782 b3c93efd1c97 b3c93efd1c97 cdf4fda66dd9 66b20f525750 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 fb7f066126cc 8f7b8e965fe4 8f7b8e965fe4 66b20f525750 55c875d8608b 55c875d8608b cdf4fda66dd9 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='repos') 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', path_prefix='/_admin')
map.resource('permission', 'permissions', path_prefix='/_admin')
#ADMIN
with map.submapper(path_prefix='/_admin', controller='admin') 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))
map.connect('login_home', '/login', controller='login')
map.connect('logout_home', '/logout', controller='login', action='logout')
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
|