Mercurial > public > src > rhodecode
annotate rhodecode/controllers/admin/repos.py @ 1233:187a924ed653 beta
Changes for repo groups
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 19 Mar 2011 18:52:27 +0100 |
parents | f3f847712f87 |
children | 6e70fcca8de8 |
rev | line source |
---|---|
881
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
1 # -*- coding: utf-8 -*- |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
2 """ |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
3 rhodecode.controllers.admin.repos |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
5 |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
6 Admin controller for RhodeCode |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
7 |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
8 :created_on: Apr 7, 2010 |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
9 :author: marcink |
963
07a6e8c65526
fixed copyright year to 2011
Marcin Kuzminski <marcin@python-works.com>
parents:
919
diff
changeset
|
10 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com> |
881
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
11 :license: GPLv3, see COPYING for more details. |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
12 """ |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
13 # This program is free software; you can redistribute it and/or |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
14 # modify it under the terms of the GNU General Public License |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
15 # as published by the Free Software Foundation; version 2 |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
16 # of the License or (at your opinion) any later version of the license. |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
17 # |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
18 # This program is distributed in the hope that it will be useful, |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
21 # GNU General Public License for more details. |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
22 # |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
23 # You should have received a copy of the GNU General Public License |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
24 # along with this program; if not, write to the Free Software |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
248
diff
changeset
|
26 # MA 02110-1301, USA. |
881
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
27 |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
28 import logging |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
29 import traceback |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
30 import formencode |
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
31 from operator import itemgetter |
331
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
32 from formencode import htmlfill |
881
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
33 |
408
7fbf81447c6c
Fixes #18, removing user, who owns some repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
401
diff
changeset
|
34 from paste.httpexceptions import HTTPInternalServerError |
331
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
35 from pylons import request, response, session, tmpl_context as c, url |
215
70f645fa97cc
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
Marcin Kuzminski <marcin@python-works.com>
parents:
191
diff
changeset
|
36 from pylons.controllers.util import abort, redirect |
248
fb7f066126cc
Added support for repository located in subdirectories.
Marcin Kuzminski <marcin@python-works.com>
parents:
247
diff
changeset
|
37 from pylons.i18n.translation import _ |
881
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
38 |
596
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
585
diff
changeset
|
39 from rhodecode.lib import helpers as h |
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
585
diff
changeset
|
40 from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator, \ |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
41 HasPermissionAnyDecorator |
596
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
585
diff
changeset
|
42 from rhodecode.lib.base import BaseController, render |
1085
4f834b0abcd3
Code refactor number 2
Marcin Kuzminski <marcin@python-works.com>
parents:
1078
diff
changeset
|
43 from rhodecode.lib.utils import invalidate_cache, action_logger, repo_name_slug |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
44 from rhodecode.lib.helpers import get_token |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
45 from rhodecode.model.db import User, Repository, UserFollowing, Group |
596
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
585
diff
changeset
|
46 from rhodecode.model.forms import RepoForm |
748
7486da5f0628
Refactor codes for scm model
Marcin Kuzminski <marcin@python-works.com>
parents:
720
diff
changeset
|
47 from rhodecode.model.scm import ScmModel |
684
7e536d1af60d
Code refactoring,models renames
Marcin Kuzminski <marcin@python-works.com>
parents:
657
diff
changeset
|
48 from rhodecode.model.repo import RepoModel |
881
ceb9f419b7fe
some extra fixes added docs string
Marcin Kuzminski <marcin@python-works.com>
parents:
877
diff
changeset
|
49 |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
50 log = logging.getLogger(__name__) |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
51 |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
52 class ReposController(BaseController): |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
53 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
54 REST Controller styled on the Atom Publishing Protocol""" |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
55 # To properly map this controller, ensure your config/routing.py |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
56 # file has a resource setup: |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
57 # map.resource('repo', 'repos') |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
58 |
235
fcab58c43ea1
Fixed access to repos and users.
Marcin Kuzminski <marcin@python-works.com>
parents:
220
diff
changeset
|
59 @LoginRequired() |
453
3ed2d46a2ca7
permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents:
432
diff
changeset
|
60 @HasPermissionAnyDecorator('hg.admin', 'hg.create.repository') |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
61 def __before__(self): |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
62 c.admin_user = session.get('admin_user') |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
63 c.admin_username = session.get('admin_username') |
191
b68b2246e5a6
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents:
169
diff
changeset
|
64 super(ReposController, self).__before__() |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
65 |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
66 def __load_defaults(self): |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
67 repo_model = RepoModel() |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
68 |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
69 c.repo_groups = [('', '')] |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
70 parents_link = lambda k:h.literal('»'.join( |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
71 map(lambda k:k.group_name, |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
72 k.parents + [k]) |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
73 ) |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
74 ) |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
75 |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
76 c.repo_groups.extend([(x.group_id, parents_link(x)) for \ |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
77 x in self.sa.query(Group).all()]) |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
78 c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
79 c.users_array = repo_model.get_users_js() |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
80 c.users_groups_array = repo_model.get_users_groups_js() |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
81 |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
82 def __load_data(self, repo_name=None): |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
83 """ |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
84 Load defaults settings for edit, and update |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
85 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
86 :param repo_name: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
87 """ |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
88 self.__load_defaults() |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
89 |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
90 repo, dbrepo = ScmModel().get(repo_name, retval='repo') |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
91 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
92 repo_model = RepoModel() |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
93 c.repo_info = repo_model.get_by_repo_name(repo_name) |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
94 |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
95 |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
96 if c.repo_info is None: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
97 h.flash(_('%s repository is not mapped to db perhaps' |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
98 ' it was created or renamed from the filesystem' |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
99 ' please run the application again' |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
100 ' in order to rescan repositories') % repo_name, |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
101 category='error') |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
102 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
103 return redirect(url('repos')) |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
104 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
105 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
106 c.default_user_id = User.by_username('default').user_id |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
107 c.in_public_journal = self.sa.query(UserFollowing)\ |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
108 .filter(UserFollowing.user_id == c.default_user_id)\ |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
109 .filter(UserFollowing.follows_repository == c.repo_info).scalar() |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
110 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
111 if c.repo_info.stats: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
112 last_rev = c.repo_info.stats.stat_on_revision |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
113 else: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
114 last_rev = 0 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
115 c.stats_revision = last_rev |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
116 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
117 c.repo_last_rev = repo.count() - 1 if repo.revisions else 0 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
118 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
119 if last_rev == 0 or c.repo_last_rev == 0: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
120 c.stats_percentage = 0 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
121 else: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
122 c.stats_percentage = '%.2f' % ((float((last_rev)) / |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
123 c.repo_last_rev) * 100) |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
124 |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
125 |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
126 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
127 defaults = c.repo_info.get_dict() |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
128 group, repo_name = c.repo_info.groups_and_repo |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
129 defaults['repo_name'] = repo_name |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
130 defaults['repo_group'] = getattr(group[-1], 'group_id', None) |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
131 |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
132 #fill owner |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
133 if c.repo_info.user: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
134 defaults.update({'user':c.repo_info.user.username}) |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
135 else: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
136 replacement_user = self.sa.query(User)\ |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
137 .filter(User.admin == True).first().username |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
138 defaults.update({'user':replacement_user}) |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
139 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
140 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
141 #fill repository users |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
142 for p in c.repo_info.repo_to_perm: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
143 defaults.update({'u_perm_%s' % p.user.username: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
144 p.permission.permission_name}) |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
145 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
146 #fill repository groups |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
147 for p in c.repo_info.users_group_to_perm: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
148 defaults.update({'g_perm_%s' % p.users_group.users_group_name: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
149 p.permission.permission_name}) |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
150 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
151 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
152 return defaults |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
153 |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
154 |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
155 @HasPermissionAllDecorator('hg.admin') |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
156 def index(self, format='html'): |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
157 """GET /repos: All items in the collection""" |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
158 # url('repos') |
748
7486da5f0628
Refactor codes for scm model
Marcin Kuzminski <marcin@python-works.com>
parents:
720
diff
changeset
|
159 cached_repo_list = ScmModel().get_repos() |
247
51434007e21d
proper sorting fix
Marcin Kuzminski <marcin@python-works.com>
parents:
246
diff
changeset
|
160 c.repos_list = sorted(cached_repo_list, key=itemgetter('name_sort')) |
127
20dc7a5eb748
Html changes and cleanups, made folders for html templates, implemented tags and branches pages
Marcin Kuzminski <marcin@python-works.com>
parents:
101
diff
changeset
|
161 return render('admin/repos/repos.html') |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
162 |
453
3ed2d46a2ca7
permission refactoring,
Marcin Kuzminski <marcin@python-works.com>
parents:
432
diff
changeset
|
163 @HasPermissionAnyDecorator('hg.admin', 'hg.create.repository') |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
164 def create(self): |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
165 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
166 POST /repos: Create a new item""" |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
167 # url('repos') |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
168 repo_model = RepoModel() |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
169 self.__load_defaults() |
383
ebdd1a89cdd9
Added extra validation in creating users.
Marcin Kuzminski <marcin@python-works.com>
parents:
382
diff
changeset
|
170 form_result = {} |
215
70f645fa97cc
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
Marcin Kuzminski <marcin@python-works.com>
parents:
191
diff
changeset
|
171 try: |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
172 form_result = RepoForm(repo_groups=c.repo_groups_choices)()\ |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
173 .to_python(dict(request.POST)) |
1190
f3f847712f87
replaced all global calls to template context (rhodecode_user), into instance attributes
Marcin Kuzminski <marcin@python-works.com>
parents:
1183
diff
changeset
|
174 repo_model.create(form_result, self.rhodecode_user) |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
175 if form_result['clone_uri']: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
176 h.flash(_('created repository %s from %s') \ |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
177 % (form_result['repo_name'], form_result['clone_uri']), |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
178 category='success') |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
179 else: |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
180 h.flash(_('created repository %s') % form_result['repo_name'], |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
181 category='success') |
585
48be953851fc
extended user logs to create/delete/fork repositories for auditing
Marcin Kuzminski <marcin@python-works.com>
parents:
453
diff
changeset
|
182 |
48be953851fc
extended user logs to create/delete/fork repositories for auditing
Marcin Kuzminski <marcin@python-works.com>
parents:
453
diff
changeset
|
183 if request.POST.get('user_created'): |
612
ba7e24cd4786
refactor codes and setup for python 2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
184 action_logger(self.rhodecode_user, 'user_created_repo', |
585
48be953851fc
extended user logs to create/delete/fork repositories for auditing
Marcin Kuzminski <marcin@python-works.com>
parents:
453
diff
changeset
|
185 form_result['repo_name'], '', self.sa) |
48be953851fc
extended user logs to create/delete/fork repositories for auditing
Marcin Kuzminski <marcin@python-works.com>
parents:
453
diff
changeset
|
186 else: |
612
ba7e24cd4786
refactor codes and setup for python 2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
187 action_logger(self.rhodecode_user, 'admin_created_repo', |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
188 form_result['repo_name'], '', self.sa) |
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
189 |
612
ba7e24cd4786
refactor codes and setup for python 2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
190 except formencode.Invalid, errors: |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
191 |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
192 c.new_repo = errors.value['repo_name'] |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
193 |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
194 if request.POST.get('user_created'): |
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
195 r = render('admin/repos/repo_add_create_repository.html') |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
196 else: |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
197 r = render('admin/repos/repo_add.html') |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
198 |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
199 return htmlfill.render( |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
200 r, |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
201 defaults=errors.value, |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
202 errors=errors.error_dict or {}, |
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
203 prefix_error=False, |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
204 encoding="UTF-8") |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
205 |
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
206 except Exception: |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
207 log.error(traceback.format_exc()) |
919
5f7731e3ab4d
fixed spelling mistakes, and some minor docs bugs
Marcin Kuzminski <marcin@python-works.com>
parents:
889
diff
changeset
|
208 msg = _('error occurred during creation of repository %s') \ |
383
ebdd1a89cdd9
Added extra validation in creating users.
Marcin Kuzminski <marcin@python-works.com>
parents:
382
diff
changeset
|
209 % form_result.get('repo_name') |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
210 h.flash(msg, category='error') |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
211 if request.POST.get('user_created'): |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
212 return redirect(url('home')) |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
213 return redirect(url('repos')) |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
214 |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
215 @HasPermissionAllDecorator('hg.admin') |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
216 def new(self, format='html'): |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
217 """GET /repos/new: Form to create a new item""" |
215
70f645fa97cc
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
Marcin Kuzminski <marcin@python-works.com>
parents:
191
diff
changeset
|
218 new_repo = request.GET.get('repo', '') |
1085
4f834b0abcd3
Code refactor number 2
Marcin Kuzminski <marcin@python-works.com>
parents:
1078
diff
changeset
|
219 c.new_repo = repo_name_slug(new_repo) |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
220 self.__load_defaults() |
215
70f645fa97cc
Moved repo creation to admin/repos, as part of crud controller. Now repo creation is based on a form, which can be auto filled with data from 404 page. Fixed the error controller to properly give the repo name.
Marcin Kuzminski <marcin@python-works.com>
parents:
191
diff
changeset
|
221 return render('admin/repos/repo_add.html') |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
222 |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
223 @HasPermissionAllDecorator('hg.admin') |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
224 def update(self, repo_name): |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
225 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
226 PUT /repos/repo_name: Update an existing item""" |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
227 # Forms posted to this method should contain a hidden field: |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
228 # <input type="hidden" name="_method" value="PUT" /> |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
229 # Or using helpers: |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
230 # h.form(url('repo', repo_name=ID), |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
231 # method='put') |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
232 # url('repo', repo_name=ID) |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
233 self.__load_defaults() |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
234 repo_model = RepoModel() |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
235 changed_name = repo_name |
1233
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
236 _form = RepoForm(edit=True, old_data={'repo_name':repo_name}, |
187a924ed653
Changes for repo groups
Marcin Kuzminski <marcin@python-works.com>
parents:
1190
diff
changeset
|
237 repo_groups=c.repo_groups_choices)() |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
238 try: |
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
239 form_result = _form.to_python(dict(request.POST)) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
240 repo_model.update(repo_name, form_result) |
720
070f32743632
Moved out reposcan into hg Model.
Marcin Kuzminski <marcin@python-works.com>
parents:
715
diff
changeset
|
241 invalidate_cache('get_repo_cached_%s' % repo_name) |
749
cb0d9ce6ac5c
#50 on point cache invalidation changes.
Marcin Kuzminski <marcin@python-works.com>
parents:
748
diff
changeset
|
242 h.flash(_('Repository %s updated successfully' % repo_name), |
331
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
243 category='success') |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
244 changed_name = form_result['repo_name'] |
715
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
245 action_logger(self.rhodecode_user, 'admin_updated_repo', |
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
246 changed_name, '', self.sa) |
df61378032f3
#48 rewrote action logger, translated action logger messages, added some extra messages. Linked and showed pushed revisions in logs
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
247 |
612
ba7e24cd4786
refactor codes and setup for python 2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
248 except formencode.Invalid, errors: |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
249 defaults = self.__load_data(repo_name) |
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
250 defaults.update(errors.value) |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
251 return htmlfill.render( |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
252 render('admin/repos/repo_edit.html'), |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
253 defaults=defaults, |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
254 errors=errors.error_dict or {}, |
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
255 prefix_error=False, |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
256 encoding="UTF-8") |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
257 |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
258 except Exception: |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
259 log.error(traceback.format_exc()) |
749
cb0d9ce6ac5c
#50 on point cache invalidation changes.
Marcin Kuzminski <marcin@python-works.com>
parents:
748
diff
changeset
|
260 h.flash(_('error occurred during update of repository %s') \ |
382
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
261 % repo_name, category='error') |
b0715a788432
Added new style error display,
Marcin Kuzminski <marcin@python-works.com>
parents:
339
diff
changeset
|
262 return redirect(url('edit_repo', repo_name=changed_name)) |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
263 |
412
ca54622e39a1
Added separate create repository views for non administrative users.
Marcin Kuzminski <marcin@python-works.com>
parents:
408
diff
changeset
|
264 @HasPermissionAllDecorator('hg.admin') |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
265 def delete(self, repo_name): |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
266 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
267 DELETE /repos/repo_name: Delete an existing item""" |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
268 # Forms posted to this method should contain a hidden field: |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
269 # <input type="hidden" name="_method" value="DELETE" /> |
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
270 # Or using helpers: |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
271 # h.form(url('repo', repo_name=ID), |
47
f6ac79182600
Added rest controllers for repos and users,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
272 # method='delete') |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
273 # url('repo', repo_name=ID) |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
274 |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
275 repo_model = RepoModel() |
792
dbec976d9975
added action loggers to following repositories,
Marcin Kuzminski <marcin@python-works.com>
parents:
768
diff
changeset
|
276 repo = repo_model.get_by_repo_name(repo_name) |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
277 if not repo: |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
278 h.flash(_('%s repository is not mapped to db perhaps' |
266
32d6c955218c
added check for repo created outside of hg app
Marcin Kuzminski <marcin@python-works.com>
parents:
265
diff
changeset
|
279 ' it was moved or renamed from the filesystem' |
32d6c955218c
added check for repo created outside of hg app
Marcin Kuzminski <marcin@python-works.com>
parents:
265
diff
changeset
|
280 ' please run the application again' |
331
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
281 ' in order to rescan repositories') % repo_name, |
fdf9f6ee5217
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents:
312
diff
changeset
|
282 category='error') |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
283 |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
284 return redirect(url('repos')) |
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
285 try: |
612
ba7e24cd4786
refactor codes and setup for python 2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
286 action_logger(self.rhodecode_user, 'admin_deleted_repo', |
585
48be953851fc
extended user logs to create/delete/fork repositories for auditing
Marcin Kuzminski <marcin@python-works.com>
parents:
453
diff
changeset
|
287 repo_name, '', self.sa) |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
288 repo_model.delete(repo) |
720
070f32743632
Moved out reposcan into hg Model.
Marcin Kuzminski <marcin@python-works.com>
parents:
715
diff
changeset
|
289 invalidate_cache('get_repo_cached_%s' % repo_name) |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
290 h.flash(_('deleted repository %s') % repo_name, category='success') |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
291 |
585
48be953851fc
extended user logs to create/delete/fork repositories for auditing
Marcin Kuzminski <marcin@python-works.com>
parents:
453
diff
changeset
|
292 except Exception, e: |
48be953851fc
extended user logs to create/delete/fork repositories for auditing
Marcin Kuzminski <marcin@python-works.com>
parents:
453
diff
changeset
|
293 log.error(traceback.format_exc()) |
919
5f7731e3ab4d
fixed spelling mistakes, and some minor docs bugs
Marcin Kuzminski <marcin@python-works.com>
parents:
889
diff
changeset
|
294 h.flash(_('An error occurred during deletion of %s') % repo_name, |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
295 category='error') |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
296 |
58
8fb1abd4178a
Added hg model,implemented removal of repos, added HgModel for fetching repos(with generator)
Marcin Kuzminski <marcin@python-blog.com>
parents:
52
diff
changeset
|
297 return redirect(url('repos')) |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
298 |
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
299 @HasPermissionAllDecorator('hg.admin') |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
300 def delete_perm_user(self, repo_name): |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
301 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
302 DELETE an existing repository permission user |
1078
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
303 |
657
5cc96df705b9
fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents:
612
diff
changeset
|
304 :param repo_name: |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
305 """ |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
306 |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
307 try: |
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
308 repo_model = RepoModel() |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
309 repo_model.delete_perm_user(request.POST, repo_name) |
612
ba7e24cd4786
refactor codes and setup for python 2.5
Marcin Kuzminski <marcin@python-works.com>
parents:
597
diff
changeset
|
310 except Exception, e: |
919
5f7731e3ab4d
fixed spelling mistakes, and some minor docs bugs
Marcin Kuzminski <marcin@python-works.com>
parents:
889
diff
changeset
|
311 h.flash(_('An error occurred during deletion of repository user'), |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
312 category='error') |
391
ec7b76d4bda4
Added initial query skipp when seting up the app.
Marcin Kuzminski <marcin@python-works.com>
parents:
383
diff
changeset
|
313 raise HTTPInternalServerError() |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
314 |
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
315 @HasPermissionAllDecorator('hg.admin') |
1078
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
316 def delete_perm_users_group(self, repo_name): |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
317 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
318 DELETE an existing repository permission users group |
1078
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
319 |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
320 :param repo_name: |
765
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
321 """ |
1078
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
322 try: |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
323 repo_model = RepoModel() |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
324 repo_model.delete_perm_users_group(request.POST, repo_name) |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
325 except Exception, e: |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
326 h.flash(_('An error occurred during deletion of repository' |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
327 ' users groups'), |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
328 category='error') |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
329 raise HTTPInternalServerError() |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
330 |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
331 @HasPermissionAllDecorator('hg.admin') |
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
332 def repo_stats(self, repo_name): |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
333 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
334 DELETE an existing repository statistics |
1078
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
335 |
765
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
336 :param repo_name: |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
337 """ |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
338 |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
339 try: |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
340 repo_model = RepoModel() |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
341 repo_model.delete_stats(repo_name) |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
342 except Exception, e: |
919
5f7731e3ab4d
fixed spelling mistakes, and some minor docs bugs
Marcin Kuzminski <marcin@python-works.com>
parents:
889
diff
changeset
|
343 h.flash(_('An error occurred during deletion of repository stats'), |
765
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
344 category='error') |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
345 return redirect(url('edit_repo', repo_name=repo_name)) |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
346 |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
347 @HasPermissionAllDecorator('hg.admin') |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
348 def repo_cache(self, repo_name): |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
349 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
350 INVALIDATE existing repository cache |
1078
65129c332d37
#56 added ajax removal of users groups,
Marcin Kuzminski <marcin@python-works.com>
parents:
1075
diff
changeset
|
351 |
765
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
352 :param repo_name: |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
353 """ |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
354 |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
355 try: |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
356 ScmModel().mark_for_invalidation(repo_name) |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
357 except Exception, e: |
768
cda88b3eb09c
fixed error for empty revisions on admin repo edit
Marcin Kuzminski <marcin@python-works.com>
parents:
765
diff
changeset
|
358 h.flash(_('An error occurred during cache invalidation'), |
765
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
359 category='error') |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
360 return redirect(url('edit_repo', repo_name=repo_name)) |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
361 |
b9bbc0d6e9f3
added cache reset, stats reset, and delete into repository settings in admin.
Marcin Kuzminski <marcin@python-works.com>
parents:
749
diff
changeset
|
362 @HasPermissionAllDecorator('hg.admin') |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
363 def repo_public_journal(self, repo_name): |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
364 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
365 Set's this repository to be visible in public journal, |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
366 in other words assing default user to follow this repo |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
367 |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
368 :param repo_name: |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
369 """ |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
370 |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
371 cur_token = request.POST.get('auth_token') |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
372 token = get_token() |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
373 if cur_token == token: |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
374 try: |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
375 repo_id = Repository.by_repo_name(repo_name).repo_id |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
376 user_id = User.by_username('default').user_id |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
377 self.scm_model.toggle_following_repo(repo_id, user_id) |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
378 h.flash(_('Updated repository visibility in public journal'), |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
379 category='success') |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
380 except: |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
381 h.flash(_('An error occurred during setting this' |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
382 ' repository in public journal'), |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
383 category='error') |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
384 |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
385 else: |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
386 h.flash(_('Token mismatch'), category='error') |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
387 return redirect(url('edit_repo', repo_name=repo_name)) |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
388 |
1183
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
389 @HasPermissionAllDecorator('hg.admin') |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
390 def repo_pull(self, repo_name): |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
391 """ |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
392 Runs task to update given repository with remote changes, |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
393 ie. make pull on remote location |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
394 |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
395 :param repo_name: |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
396 """ |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
397 try: |
1190
f3f847712f87
replaced all global calls to template context (rhodecode_user), into instance attributes
Marcin Kuzminski <marcin@python-works.com>
parents:
1183
diff
changeset
|
398 ScmModel().pull_changes(repo_name, self.rhodecode_user.username) |
1183
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
399 h.flash(_('Pulled from remote location'), category='success') |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
400 except Exception, e: |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
401 h.flash(_('An error occurred during pull from remote location'), |
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
402 category='error') |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
403 |
1183
4de3fa6290a7
#109, added manual pull of changes for repositories that have remote location filled in.
Marcin Kuzminski <marcin@python-works.com>
parents:
1181
diff
changeset
|
404 return redirect(url('edit_repo', repo_name=repo_name)) |
1154
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
405 |
3fe3285868d1
implemented public journal for anonymous users, admin can control which repositories
Marcin Kuzminski <marcin@python-works.com>
parents:
1151
diff
changeset
|
406 @HasPermissionAllDecorator('hg.admin') |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
407 def show(self, repo_name, format='html'): |
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
408 """GET /repos/repo_name: Show a specific item""" |
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
409 # url('repo', repo_name=ID) |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
410 |
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
411 @HasPermissionAllDecorator('hg.admin') |
312
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
412 def edit(self, repo_name, format='html'): |
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
413 """GET /repos/repo_name/edit: Form to edit an existing item""" |
d303aacb3349
repos crud controllers - change id into repo_name for compatability, added ajax repo perm user function variuos html fixes, permissions forms and managment fixes.
Marcin Kuzminski <marcin@python-works.com>
parents:
311
diff
changeset
|
414 # url('edit_repo', repo_name=ID) |
1181
6d0a7284949d
#109, added optional clone uri when creating repo.
Marcin Kuzminski <marcin@python-works.com>
parents:
1175
diff
changeset
|
415 defaults = self.__load_data(repo_name) |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
416 |
265
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
417 return htmlfill.render( |
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
418 render('admin/repos/repo_edit.html'), |
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
419 defaults=defaults, |
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
420 encoding="UTF-8", |
0e5455fda8fd
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
252
diff
changeset
|
421 force_defaults=False |
691
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
684
diff
changeset
|
422 ) |