Show More
@@ -17,6 +17,7 b'' | |||||
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ |
|
17 | # and proprietary license terms, please see https://rhodecode.com/licenses/ | |
18 |
|
18 | |||
19 | import logging |
|
19 | import logging | |
|
20 | ||||
20 | import rhodecode |
|
21 | import rhodecode | |
21 | import collections |
|
22 | import collections | |
22 |
|
23 |
@@ -66,12 +66,12 b' class Hooks(object):' | |||||
66 | result = hook(extras) |
|
66 | result = hook(extras) | |
67 | if result is None: |
|
67 | if result is None: | |
68 | raise Exception(f'Failed to obtain hook result from func: {hook}') |
|
68 | raise Exception(f'Failed to obtain hook result from func: {hook}') | |
69 |
except HTTPBranchProtected as |
|
69 | except HTTPBranchProtected as error: | |
70 | # Those special cases don't need error reporting. It's a case of |
|
70 | # Those special cases don't need error reporting. It's a case of | |
71 | # locked repo or protected branch |
|
71 | # locked repo or protected branch | |
72 | result = AttributeDict({ |
|
72 | result = AttributeDict({ | |
73 |
'status': |
|
73 | 'status': error.code, | |
74 |
'output': |
|
74 | 'output': error.explanation | |
75 | }) |
|
75 | }) | |
76 | except (HTTPLockedRC, Exception) as error: |
|
76 | except (HTTPLockedRC, Exception) as error: | |
77 | # locked needs different handling since we need to also |
|
77 | # locked needs different handling since we need to also |
@@ -142,6 +142,8 b' def pre_push(extras):' | |||||
142 | if extras.commit_ids and extras.check_branch_perms: |
|
142 | if extras.commit_ids and extras.check_branch_perms: | |
143 | auth_user = user.AuthUser() |
|
143 | auth_user = user.AuthUser() | |
144 | repo = Repository.get_by_repo_name(extras.repository) |
|
144 | repo = Repository.get_by_repo_name(extras.repository) | |
|
145 | if not repo: | |||
|
146 | raise ValueError(f'Repo for {extras.repository} not found') | |||
145 | affected_branches = [] |
|
147 | affected_branches = [] | |
146 | if repo.repo_type == 'hg': |
|
148 | if repo.repo_type == 'hg': | |
147 | for entry in extras.commit_ids: |
|
149 | for entry in extras.commit_ids: |
@@ -293,7 +293,7 b' class SimpleVCS(object):' | |||||
293 | def compute_perm_vcs( |
|
293 | def compute_perm_vcs( | |
294 | cache_name, plugin_id, action, user_id, repo_name, ip_addr): |
|
294 | cache_name, plugin_id, action, user_id, repo_name, ip_addr): | |
295 |
|
295 | |||
296 |
log.debug('auth: calculating permission access now |
|
296 | log.debug('auth: calculating permission access now for vcs operation: %s', action) | |
297 | # check IP |
|
297 | # check IP | |
298 | inherit = user.inherit_default_permissions |
|
298 | inherit = user.inherit_default_permissions | |
299 | ip_allowed = AuthUser.check_ip_allowed( |
|
299 | ip_allowed = AuthUser.check_ip_allowed( |
@@ -43,6 +43,7 b' from webhelpers2.text import collapse, s' | |||||
43 | from mako import exceptions |
|
43 | from mako import exceptions | |
44 |
|
44 | |||
45 | from rhodecode import ConfigGet |
|
45 | from rhodecode import ConfigGet | |
|
46 | from rhodecode.lib.exceptions import HTTPBranchProtected, HTTPLockedRC | |||
46 | from rhodecode.lib.hash_utils import sha256_safe, md5, sha1 |
|
47 | from rhodecode.lib.hash_utils import sha256_safe, md5, sha1 | |
47 | from rhodecode.lib.type_utils import AttributeDict |
|
48 | from rhodecode.lib.type_utils import AttributeDict | |
48 | from rhodecode.lib.str_utils import safe_bytes, safe_str |
|
49 | from rhodecode.lib.str_utils import safe_bytes, safe_str | |
@@ -88,8 +89,36 b' def adopt_for_celery(func):' | |||||
88 | try: |
|
89 | try: | |
89 | # HooksResponse implements to_json method which must be used there. |
|
90 | # HooksResponse implements to_json method which must be used there. | |
90 | return func(extras).to_json() |
|
91 | return func(extras).to_json() | |
|
92 | except HTTPBranchProtected as error: | |||
|
93 | # Those special cases don't need error reporting. It's a case of | |||
|
94 | # locked repo or protected branch | |||
|
95 | error_args = error.args | |||
|
96 | return { | |||
|
97 | 'status': error.code, | |||
|
98 | 'output': error.explanation, | |||
|
99 | 'exception': type(error).__name__, | |||
|
100 | 'exception_args': error_args, | |||
|
101 | 'exception_traceback': '', | |||
|
102 | } | |||
|
103 | except HTTPLockedRC as error: | |||
|
104 | # Those special cases don't need error reporting. It's a case of | |||
|
105 | # locked repo or protected branch | |||
|
106 | error_args = error.args | |||
|
107 | return { | |||
|
108 | 'status': error.code, | |||
|
109 | 'output': error.explanation, | |||
|
110 | 'exception': type(error).__name__, | |||
|
111 | 'exception_args': error_args, | |||
|
112 | 'exception_traceback': '', | |||
|
113 | } | |||
91 | except Exception as e: |
|
114 | except Exception as e: | |
92 | return {'status': 128, 'exception': type(e).__name__, 'exception_args': e.args} |
|
115 | return { | |
|
116 | 'status': 128, | |||
|
117 | 'output': '', | |||
|
118 | 'exception': type(e).__name__, | |||
|
119 | 'exception_args': e.args, | |||
|
120 | 'exception_traceback': '', | |||
|
121 | } | |||
93 | return wrapper |
|
122 | return wrapper | |
94 |
|
123 | |||
95 |
|
124 |
General Comments 0
You need to be logged in to leave comments.
Login now