Show More
@@ -144,7 +144,7 b' class PermissionsController(BaseControll' | |||||
144 | c.create_choices = self.create_choices |
|
144 | c.create_choices = self.create_choices | |
145 |
|
145 | |||
146 | if id == 'default': |
|
146 | if id == 'default': | |
147 | default_user = User.by_username('default') |
|
147 | default_user = User.get_by_username('default') | |
148 | defaults = {'_method': 'put', |
|
148 | defaults = {'_method': 'put', | |
149 | 'anonymous': default_user.active} |
|
149 | 'anonymous': default_user.active} | |
150 |
|
150 |
@@ -89,7 +89,7 b' class ReposController(BaseController):' | |||||
89 | """ |
|
89 | """ | |
90 | self.__load_defaults() |
|
90 | self.__load_defaults() | |
91 |
|
91 | |||
92 | c.repo_info = db_repo = Repository.by_repo_name(repo_name) |
|
92 | c.repo_info = db_repo = Repository.get_by_repo_name(repo_name) | |
93 | repo = scm_repo = db_repo.scm_instance |
|
93 | repo = scm_repo = db_repo.scm_instance | |
94 |
|
94 | |||
95 | if c.repo_info is None: |
|
95 | if c.repo_info is None: | |
@@ -101,7 +101,7 b' class ReposController(BaseController):' | |||||
101 |
|
101 | |||
102 | return redirect(url('repos')) |
|
102 | return redirect(url('repos')) | |
103 |
|
103 | |||
104 | c.default_user_id = User.by_username('default').user_id |
|
104 | c.default_user_id = User.get_by_username('default').user_id | |
105 | c.in_public_journal = self.sa.query(UserFollowing)\ |
|
105 | c.in_public_journal = self.sa.query(UserFollowing)\ | |
106 | .filter(UserFollowing.user_id == c.default_user_id)\ |
|
106 | .filter(UserFollowing.user_id == c.default_user_id)\ | |
107 | .filter(UserFollowing.follows_repository == c.repo_info).scalar() |
|
107 | .filter(UserFollowing.follows_repository == c.repo_info).scalar() | |
@@ -381,8 +381,8 b' class ReposController(BaseController):' | |||||
381 | token = get_token() |
|
381 | token = get_token() | |
382 | if cur_token == token: |
|
382 | if cur_token == token: | |
383 | try: |
|
383 | try: | |
384 | repo_id = Repository.by_repo_name(repo_name).repo_id |
|
384 | repo_id = Repository.get_by_repo_name(repo_name).repo_id | |
385 | user_id = User.by_username('default').user_id |
|
385 | user_id = User.get_by_username('default').user_id | |
386 | self.scm_model.toggle_following_repo(repo_id, user_id) |
|
386 | self.scm_model.toggle_following_repo(repo_id, user_id) | |
387 | h.flash(_('Updated repository visibility in public journal'), |
|
387 | h.flash(_('Updated repository visibility in public journal'), | |
388 | category='success') |
|
388 | category='success') |
@@ -64,8 +64,7 b' class LoginController(BaseController):' | |||||
64 | c.form_result = login_form.to_python(dict(request.POST)) |
|
64 | c.form_result = login_form.to_python(dict(request.POST)) | |
65 | #form checks for username/password, now we're authenticated |
|
65 | #form checks for username/password, now we're authenticated | |
66 | username = c.form_result['username'] |
|
66 | username = c.form_result['username'] | |
67 | user = User.by_username(username, |
|
67 | user = User.get_by_username(username, case_insensitive=True) | |
68 | case_insensitive=True) |
|
|||
69 | auth_user = AuthUser(user.user_id) |
|
68 | auth_user = AuthUser(user.user_id) | |
70 | auth_user.set_authenticated() |
|
69 | auth_user.set_authenticated() | |
71 | session['rhodecode_user'] = auth_user |
|
70 | session['rhodecode_user'] = auth_user | |
@@ -95,8 +94,7 b' class LoginController(BaseController):' | |||||
95 | def register(self): |
|
94 | def register(self): | |
96 | user_model = UserModel() |
|
95 | user_model = UserModel() | |
97 | c.auto_active = False |
|
96 | c.auto_active = False | |
98 |
for perm in |
|
97 | for perm in User.get_by_username('default').user_perms: | |
99 | cache=False).user_perms: |
|
|||
100 | if perm.permission.permission_name == 'hg.register.auto_activate': |
|
98 | if perm.permission.permission_name == 'hg.register.auto_activate': | |
101 | c.auto_active = True |
|
99 | c.auto_active = True | |
102 | break |
|
100 | break |
@@ -48,7 +48,7 b' from rhodecode.lib.auth_ldap import Auth' | |||||
48 |
|
48 | |||
49 | from rhodecode.model import meta |
|
49 | from rhodecode.model import meta | |
50 | from rhodecode.model.user import UserModel |
|
50 | from rhodecode.model.user import UserModel | |
51 | from rhodecode.model.db import Permission, RhodeCodeSettings |
|
51 | from rhodecode.model.db import Permission, RhodeCodeSettings, User | |
52 |
|
52 | |||
53 | log = logging.getLogger(__name__) |
|
53 | log = logging.getLogger(__name__) | |
54 |
|
54 | |||
@@ -151,7 +151,7 b' def authenticate(username, password):' | |||||
151 | """ |
|
151 | """ | |
152 |
|
152 | |||
153 | user_model = UserModel() |
|
153 | user_model = UserModel() | |
154 |
user = |
|
154 | user = User.get_by_username(username) | |
155 |
|
155 | |||
156 | log.debug('Authenticating user using RhodeCode account') |
|
156 | log.debug('Authenticating user using RhodeCode account') | |
157 | if user is not None and not user.ldap_dn: |
|
157 | if user is not None and not user.ldap_dn: | |
@@ -170,8 +170,7 b' def authenticate(username, password):' | |||||
170 |
|
170 | |||
171 | else: |
|
171 | else: | |
172 | log.debug('Regular authentication failed') |
|
172 | log.debug('Regular authentication failed') | |
173 |
user_obj = |
|
173 | user_obj = User.get_by_username(username, case_insensitive=True) | |
174 | case_insensitive=True) |
|
|||
175 |
|
174 | |||
176 | if user_obj is not None and not user_obj.ldap_dn: |
|
175 | if user_obj is not None and not user_obj.ldap_dn: | |
177 | log.debug('this user already exists as non ldap') |
|
176 | log.debug('this user already exists as non ldap') | |
@@ -252,7 +251,7 b' class AuthUser(object):' | |||||
252 |
|
251 | |||
253 | def propagate_data(self): |
|
252 | def propagate_data(self): | |
254 | user_model = UserModel() |
|
253 | user_model = UserModel() | |
255 |
self.anonymous_user = |
|
254 | self.anonymous_user = User.get_by_username('default') | |
256 | if self._api_key and self._api_key != self.anonymous_user.api_key: |
|
255 | if self._api_key and self._api_key != self.anonymous_user.api_key: | |
257 | #try go get user by api key |
|
256 | #try go get user by api key | |
258 | log.debug('Auth User lookup by API KEY %s', self._api_key) |
|
257 | log.debug('Auth User lookup by API KEY %s', self._api_key) |
@@ -67,7 +67,7 b' class BaseRepoController(BaseController)' | |||||
67 | super(BaseRepoController, self).__before__() |
|
67 | super(BaseRepoController, self).__before__() | |
68 | if c.repo_name: |
|
68 | if c.repo_name: | |
69 |
|
69 | |||
70 | c.rhodecode_db_repo = Repository.by_repo_name(c.repo_name) |
|
70 | c.rhodecode_db_repo = Repository.get_by_repo_name(c.repo_name) | |
71 | c.rhodecode_repo = c.rhodecode_db_repo.scm_instance |
|
71 | c.rhodecode_repo = c.rhodecode_db_repo.scm_instance | |
72 |
|
72 | |||
73 | if c.rhodecode_repo is None: |
|
73 | if c.rhodecode_repo is None: |
@@ -262,7 +262,7 b' class SimpleGit(object):' | |||||
262 | return repo_name |
|
262 | return repo_name | |
263 |
|
263 | |||
264 | def __get_user(self, username): |
|
264 | def __get_user(self, username): | |
265 | return User.by_username(username) |
|
265 | return User.get_by_username(username) | |
266 |
|
266 | |||
267 | def __get_action(self, environ): |
|
267 | def __get_action(self, environ): | |
268 | """Maps git request commands into a pull or push command. |
|
268 | """Maps git request commands into a pull or push command. |
@@ -229,7 +229,7 b' class SimpleHg(object):' | |||||
229 | return repo_name |
|
229 | return repo_name | |
230 |
|
230 | |||
231 | def __get_user(self, username): |
|
231 | def __get_user(self, username): | |
232 | return User.by_username(username) |
|
232 | return User.get_by_username(username) | |
233 |
|
233 | |||
234 | def __get_action(self, environ): |
|
234 | def __get_action(self, environ): | |
235 | """ |
|
235 | """ |
@@ -112,7 +112,7 b' def action_logger(user, action, repo, ip' | |||||
112 | if hasattr(user, 'user_id'): |
|
112 | if hasattr(user, 'user_id'): | |
113 | user_obj = user |
|
113 | user_obj = user | |
114 | elif isinstance(user, basestring): |
|
114 | elif isinstance(user, basestring): | |
115 | user_obj = User.by_username(user) |
|
115 | user_obj = User.get_by_username(user) | |
116 | else: |
|
116 | else: | |
117 | raise Exception('You have to provide user object or username') |
|
117 | raise Exception('You have to provide user object or username') | |
118 |
|
118 |
@@ -281,17 +281,16 b' class User(Base, BaseModel):' | |||||
281 | return self.__class__.__name__ |
|
281 | return self.__class__.__name__ | |
282 |
|
282 | |||
283 | @classmethod |
|
283 | @classmethod | |
284 | def by_username(cls, username, case_insensitive=False): |
|
284 | def get_by_username(cls, username, case_insensitive=False): | |
285 | if case_insensitive: |
|
285 | if case_insensitive: | |
286 |
return Session.query(cls).filter(cls.username.like(username)). |
|
286 | return Session.query(cls).filter(cls.username.like(username)).scalar() | |
287 | else: |
|
287 | else: | |
288 |
return Session.query(cls).filter(cls.username == username). |
|
288 | return Session.query(cls).filter(cls.username == username).scalar() | |
289 |
|
289 | |||
290 | @classmethod |
|
290 | @classmethod | |
291 | def get_by_api_key(cls, api_key): |
|
291 | def get_by_api_key(cls, api_key): | |
292 | return Session.query(cls).filter(cls.api_key == api_key).one() |
|
292 | return Session.query(cls).filter(cls.api_key == api_key).one() | |
293 |
|
293 | |||
294 |
|
||||
295 | def update_lastlogin(self): |
|
294 | def update_lastlogin(self): | |
296 | """Update user lastlogin""" |
|
295 | """Update user lastlogin""" | |
297 |
|
296 | |||
@@ -487,7 +486,7 b' class Repository(Base, BaseModel):' | |||||
487 | self.repo_id, self.repo_name) |
|
486 | self.repo_id, self.repo_name) | |
488 |
|
487 | |||
489 | @classmethod |
|
488 | @classmethod | |
490 | def by_repo_name(cls, repo_name): |
|
489 | def get_by_repo_name(cls, repo_name): | |
491 | q = Session.query(cls).filter(cls.repo_name == repo_name) |
|
490 | q = Session.query(cls).filter(cls.repo_name == repo_name) | |
492 |
|
491 | |||
493 | q = q.options(joinedload(Repository.fork))\ |
|
492 | q = q.options(joinedload(Repository.fork))\ |
@@ -70,8 +70,7 b' def ValidUsername(edit, old_data):' | |||||
70 | old_un = UserModel().get(old_data.get('user_id')).username |
|
70 | old_un = UserModel().get(old_data.get('user_id')).username | |
71 |
|
71 | |||
72 | if old_un != value or not edit: |
|
72 | if old_un != value or not edit: | |
73 |
if User |
|
73 | if User.get_by_username(value, case_insensitive=True): | |
74 | case_insensitive=True): |
|
|||
75 | raise formencode.Invalid(_('This username already ' |
|
74 | raise formencode.Invalid(_('This username already ' | |
76 | 'exists') , value, state) |
|
75 | 'exists') , value, state) | |
77 |
|
76 | |||
@@ -206,7 +205,7 b' class ValidAuth(formencode.validators.Fa' | |||||
206 | def validate_python(self, value, state): |
|
205 | def validate_python(self, value, state): | |
207 | password = value['password'] |
|
206 | password = value['password'] | |
208 | username = value['username'] |
|
207 | username = value['username'] | |
209 |
user = User |
|
208 | user = User.get_by_username(username) | |
210 |
|
209 | |||
211 | if authenticate(username, password): |
|
210 | if authenticate(username, password): | |
212 | return value |
|
211 | return value |
@@ -102,7 +102,7 b' class RepoModel(BaseModel):' | |||||
102 | for member, perm, member_type in form_data['perms_updates']: |
|
102 | for member, perm, member_type in form_data['perms_updates']: | |
103 | if member_type == 'user': |
|
103 | if member_type == 'user': | |
104 | r2p = self.sa.query(RepoToPerm)\ |
|
104 | r2p = self.sa.query(RepoToPerm)\ | |
105 | .filter(RepoToPerm.user == User.by_username(member))\ |
|
105 | .filter(RepoToPerm.user == User.get_by_username(member))\ | |
106 | .filter(RepoToPerm.repository == cur_repo)\ |
|
106 | .filter(RepoToPerm.repository == cur_repo)\ | |
107 | .one() |
|
107 | .one() | |
108 |
|
108 | |||
@@ -127,7 +127,7 b' class RepoModel(BaseModel):' | |||||
127 | if member_type == 'user': |
|
127 | if member_type == 'user': | |
128 | r2p = RepoToPerm() |
|
128 | r2p = RepoToPerm() | |
129 | r2p.repository = cur_repo |
|
129 | r2p.repository = cur_repo | |
130 | r2p.user = User.by_username(member) |
|
130 | r2p.user = User.get_by_username(member) | |
131 |
|
131 | |||
132 | r2p.permission = self.sa.query(Permission)\ |
|
132 | r2p.permission = self.sa.query(Permission)\ | |
133 | .filter(Permission. |
|
133 | .filter(Permission. | |
@@ -147,7 +147,7 b' class RepoModel(BaseModel):' | |||||
147 | #update current repo |
|
147 | #update current repo | |
148 | for k, v in form_data.items(): |
|
148 | for k, v in form_data.items(): | |
149 | if k == 'user': |
|
149 | if k == 'user': | |
150 | cur_repo.user = User.by_username(v) |
|
150 | cur_repo.user = User.get_by_username(v) | |
151 | elif k == 'repo_name': |
|
151 | elif k == 'repo_name': | |
152 | cur_repo.repo_name = form_data['repo_name_full'] |
|
152 | cur_repo.repo_name = form_data['repo_name_full'] | |
153 | elif k == 'repo_group': |
|
153 | elif k == 'repo_group': | |
@@ -208,8 +208,7 b' class RepoModel(BaseModel):' | |||||
208 | #create default permission |
|
208 | #create default permission | |
209 | repo_to_perm = RepoToPerm() |
|
209 | repo_to_perm = RepoToPerm() | |
210 | default = 'repository.read' |
|
210 | default = 'repository.read' | |
211 |
for p in User |
|
211 | for p in User.get_by_username('default').user_perms: | |
212 | cache=False).user_perms: |
|
|||
213 | if p.permission.permission_name.startswith('repository.'): |
|
212 | if p.permission.permission_name.startswith('repository.'): | |
214 | default = p.permission.permission_name |
|
213 | default = p.permission.permission_name | |
215 | break |
|
214 | break | |
@@ -221,8 +220,7 b' class RepoModel(BaseModel):' | |||||
221 | .one().permission_id |
|
220 | .one().permission_id | |
222 |
|
221 | |||
223 | repo_to_perm.repository = new_repo |
|
222 | repo_to_perm.repository = new_repo | |
224 |
repo_to_perm.user_id = User |
|
223 | repo_to_perm.user_id = User.get_by_username('default').user_id | |
225 | .get_by_username('default', cache=False).user_id |
|
|||
226 |
|
224 | |||
227 | self.sa.add(repo_to_perm) |
|
225 | self.sa.add(repo_to_perm) | |
228 |
|
226 |
@@ -22,7 +22,6 b'' | |||||
22 | # |
|
22 | # | |
23 | # You should have received a copy of the GNU General Public License |
|
23 | # You should have received a copy of the GNU General Public License | |
24 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
24 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
25 | import os |
|
|||
26 | import time |
|
25 | import time | |
27 | import traceback |
|
26 | import traceback | |
28 | import logging |
|
27 | import logging | |
@@ -41,9 +40,8 b' from rhodecode.lib.auth import HasRepoPe' | |||||
41 | from rhodecode.lib.utils import get_repos as get_filesystem_repos, make_ui, \ |
|
40 | from rhodecode.lib.utils import get_repos as get_filesystem_repos, make_ui, \ | |
42 | action_logger, EmptyChangeset |
|
41 | action_logger, EmptyChangeset | |
43 | from rhodecode.model import BaseModel |
|
42 | from rhodecode.model import BaseModel | |
44 | from rhodecode.model.user import UserModel |
|
|||
45 | from rhodecode.model.db import Repository, RhodeCodeUi, CacheInvalidation, \ |
|
43 | from rhodecode.model.db import Repository, RhodeCodeUi, CacheInvalidation, \ | |
46 | UserFollowing, UserLog |
|
44 | UserFollowing, UserLog, User | |
47 |
|
45 | |||
48 | log = logging.getLogger(__name__) |
|
46 | log = logging.getLogger(__name__) | |
49 |
|
47 | |||
@@ -283,7 +281,7 b' class ScmModel(BaseModel):' | |||||
283 | return f is not None |
|
281 | return f is not None | |
284 |
|
282 | |||
285 | def is_following_user(self, username, user_id, cache=False): |
|
283 | def is_following_user(self, username, user_id, cache=False): | |
286 |
u = User |
|
284 | u = User.get_by_username(username) | |
287 |
|
285 | |||
288 | f = self.sa.query(UserFollowing)\ |
|
286 | f = self.sa.query(UserFollowing)\ | |
289 | .filter(UserFollowing.follows_user == u)\ |
|
287 | .filter(UserFollowing.follows_user == u)\ | |
@@ -293,20 +291,20 b' class ScmModel(BaseModel):' | |||||
293 |
|
291 | |||
294 | def get_followers(self, repo_id): |
|
292 | def get_followers(self, repo_id): | |
295 | if not isinstance(repo_id, int): |
|
293 | if not isinstance(repo_id, int): | |
296 | repo_id = getattr(Repository.by_repo_name(repo_id), 'repo_id') |
|
294 | repo_id = getattr(Repository.get_by_repo_name(repo_id), 'repo_id') | |
297 |
|
295 | |||
298 | return self.sa.query(UserFollowing)\ |
|
296 | return self.sa.query(UserFollowing)\ | |
299 | .filter(UserFollowing.follows_repo_id == repo_id).count() |
|
297 | .filter(UserFollowing.follows_repo_id == repo_id).count() | |
300 |
|
298 | |||
301 | def get_forks(self, repo_id): |
|
299 | def get_forks(self, repo_id): | |
302 | if not isinstance(repo_id, int): |
|
300 | if not isinstance(repo_id, int): | |
303 | repo_id = getattr(Repository.by_repo_name(repo_id), 'repo_id') |
|
301 | repo_id = getattr(Repository.get_by_repo_name(repo_id), 'repo_id') | |
304 |
|
302 | |||
305 | return self.sa.query(Repository)\ |
|
303 | return self.sa.query(Repository)\ | |
306 | .filter(Repository.fork_id == repo_id).count() |
|
304 | .filter(Repository.fork_id == repo_id).count() | |
307 |
|
305 | |||
308 | def pull_changes(self, repo_name, username): |
|
306 | def pull_changes(self, repo_name, username): | |
309 | dbrepo = Repository.by_repo_name(repo_name) |
|
307 | dbrepo = Repository.get_by_repo_name(repo_name) | |
310 | clone_uri = dbrepo.clone_uri |
|
308 | clone_uri = dbrepo.clone_uri | |
311 | if not clone_uri: |
|
309 | if not clone_uri: | |
312 | raise Exception("This repository doesn't have a clone uri") |
|
310 | raise Exception("This repository doesn't have a clone uri") |
@@ -246,7 +246,7 b' class TestLoginController(TestController' | |||||
246 |
|
246 | |||
247 | # GOOD KEY |
|
247 | # GOOD KEY | |
248 |
|
248 | |||
249 | key = User.by_username(username).api_key |
|
249 | key = User.get_by_username(username).api_key | |
250 |
|
250 | |||
251 | response = self.app.get(url(controller='login', |
|
251 | response = self.app.get(url(controller='login', | |
252 | action='password_reset_confirmation', |
|
252 | action='password_reset_confirmation', |
@@ -41,7 +41,7 b' class TestSummaryController(TestControll' | |||||
41 |
|
41 | |||
42 |
|
42 | |||
43 | def _enable_stats(self): |
|
43 | def _enable_stats(self): | |
44 | r = Repository.by_repo_name(HG_REPO) |
|
44 | r = Repository.get_by_repo_name(HG_REPO) | |
45 | r.enable_statistics = True |
|
45 | r.enable_statistics = True | |
46 | self.sa.add(r) |
|
46 | self.sa.add(r) | |
47 | self.sa.commit() |
|
47 | self.sa.commit() |
@@ -44,7 +44,7 b' add_cache(conf)' | |||||
44 | USER = 'test_admin' |
|
44 | USER = 'test_admin' | |
45 | PASS = 'test12' |
|
45 | PASS = 'test12' | |
46 | HOST = '127.0.0.1:5000' |
|
46 | HOST = '127.0.0.1:5000' | |
47 | DEBUG = bool(int(sys.argv[1])) |
|
47 | DEBUG = True if sys.argv[1:] else False | |
48 | print 'DEBUG:', DEBUG |
|
48 | print 'DEBUG:', DEBUG | |
49 | log = logging.getLogger(__name__) |
|
49 | log = logging.getLogger(__name__) | |
50 |
|
50 | |||
@@ -72,7 +72,7 b' class Command(object):' | |||||
72 | def test_wrapp(func): |
|
72 | def test_wrapp(func): | |
73 |
|
73 | |||
74 | def __wrapp(*args, **kwargs): |
|
74 | def __wrapp(*args, **kwargs): | |
75 |
print ' |
|
75 | print '>>>%s' % func.__name__ | |
76 | try: |
|
76 | try: | |
77 | res = func(*args, **kwargs) |
|
77 | res = func(*args, **kwargs) | |
78 | except Exception, e: |
|
78 | except Exception, e: |
@@ -23,6 +23,7 b' pdebug = false' | |||||
23 | #smtp_password = |
|
23 | #smtp_password = | |
24 | #smtp_port = |
|
24 | #smtp_port = | |
25 | #smtp_use_tls = false |
|
25 | #smtp_use_tls = false | |
|
26 | #smtp_use_ssl = true | |||
26 |
|
27 | |||
27 | [server:main] |
|
28 | [server:main] | |
28 | ##nr of threads to spawn |
|
29 | ##nr of threads to spawn | |
@@ -49,6 +50,7 b' app_instance_uuid = develop-test' | |||||
49 | cut_off_limit = 256000 |
|
50 | cut_off_limit = 256000 | |
50 | force_https = false |
|
51 | force_https = false | |
51 | commit_parse_limit = 25 |
|
52 | commit_parse_limit = 25 | |
|
53 | use_gravatar = true | |||
52 |
|
54 | |||
53 | #################################### |
|
55 | #################################### | |
54 | ### CELERY CONFIG #### |
|
56 | ### CELERY CONFIG #### | |
@@ -93,7 +95,6 b' beaker.cache.short_term.expire=60' | |||||
93 | beaker.cache.long_term.type=memory |
|
95 | beaker.cache.long_term.type=memory | |
94 | beaker.cache.long_term.expire=36000 |
|
96 | beaker.cache.long_term.expire=36000 | |
95 |
|
97 | |||
96 |
|
||||
97 | beaker.cache.sql_cache_short.type=memory |
|
98 | beaker.cache.sql_cache_short.type=memory | |
98 | beaker.cache.sql_cache_short.expire=10 |
|
99 | beaker.cache.sql_cache_short.expire=10 | |
99 |
|
100 | |||
@@ -167,9 +168,10 b' handlers = console' | |||||
167 |
|
168 | |||
168 | [logger_routes] |
|
169 | [logger_routes] | |
169 | level = ERROR |
|
170 | level = ERROR | |
170 |
handlers = |
|
171 | handlers = | |
171 | qualname = routes.middleware |
|
172 | qualname = routes.middleware | |
172 | # "level = DEBUG" logs the route matched and routing variables. |
|
173 | # "level = DEBUG" logs the route matched and routing variables. | |
|
174 | propagate = 1 | |||
173 |
|
175 | |||
174 | [logger_beaker] |
|
176 | [logger_beaker] | |
175 | level = DEBUG |
|
177 | level = DEBUG | |
@@ -185,9 +187,9 b' propagate = 1' | |||||
185 |
|
187 | |||
186 | [logger_rhodecode] |
|
188 | [logger_rhodecode] | |
187 | level = ERROR |
|
189 | level = ERROR | |
188 |
handlers = |
|
190 | handlers = | |
189 | qualname = rhodecode |
|
191 | qualname = rhodecode | |
190 |
propagate = |
|
192 | propagate = 1 | |
191 |
|
193 | |||
192 | [logger_sqlalchemy] |
|
194 | [logger_sqlalchemy] | |
193 | level = ERROR |
|
195 | level = ERROR | |
@@ -203,7 +205,7 b' propagate = 0' | |||||
203 | class = StreamHandler |
|
205 | class = StreamHandler | |
204 | args = (sys.stderr,) |
|
206 | args = (sys.stderr,) | |
205 | level = NOTSET |
|
207 | level = NOTSET | |
206 |
formatter = |
|
208 | formatter = generic | |
207 |
|
209 | |||
208 | ################ |
|
210 | ################ | |
209 | ## FORMATTERS ## |
|
211 | ## FORMATTERS ## |
General Comments 0
You need to be logged in to leave comments.
Login now