Files
@ 7557da2252a3
Branch filter:
Location: kallithea/docs/usage/debugging.rst - annotation
7557da2252a3
1.2 KiB
text/prs.fallenstein.rst
auth: construct AuthUser from either user_id or db.User object
If the caller already has the database User object, there's no reason
for AuthUser to look it up again.
The `api_key` lookup functionality is dropped, because 1) it's only
used in one place, and 2) it's simple enough for the caller to do the
lookup itself.
The `user_id` lookup functionality is kept, because 1) it's frequently
used, and 2) far from a simple `User.get(id)` lookup, it has a complex
interaction with UserModel. (That cleanup will have to wait for another
day.)
All calls of the form `AuthUser(user_id=x.user_id)` can be replaced with
`AuthUser(dbuser=x)`, assuming `x` is a db.User. However, verifying that
assumption requires a manual audit of every call site, since `x` might
also be another `AuthUser` object, for instance. Therefore, only the
most obvious call sites have been fixed here.
If the caller already has the database User object, there's no reason
for AuthUser to look it up again.
The `api_key` lookup functionality is dropped, because 1) it's only
used in one place, and 2) it's simple enough for the caller to do the
lookup itself.
The `user_id` lookup functionality is kept, because 1) it's frequently
used, and 2) far from a simple `User.get(id)` lookup, it has a complex
interaction with UserModel. (That cleanup will have to wait for another
day.)
All calls of the form `AuthUser(user_id=x.user_id)` can be replaced with
`AuthUser(dbuser=x)`, assuming `x` is a db.User. However, verifying that
assumption requires a manual audit of every call site, since `x` might
also be another `AuthUser` object, for instance. Therefore, only the
most obvious call sites have been fixed here.
4d076981a7b1 4d076981a7b1 4d076981a7b1 e73a69cb98dc 4d076981a7b1 4d076981a7b1 4e6dfdb3fa01 4e6dfdb3fa01 4d076981a7b1 4e6dfdb3fa01 4d076981a7b1 03bbd33bc084 4d076981a7b1 4d076981a7b1 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 097327aaf2ad 4d076981a7b1 4d076981a7b1 03bbd33bc084 4d076981a7b1 4d076981a7b1 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 4e6dfdb3fa01 | .. _debugging:
===================
Debugging Kallithea
===================
If you encounter problems with Kallithea, here are some instructions
on how to debug them.
.. note:: First make sure you're using the latest version available.
Enable detailed debug
---------------------
Kallithea uses the standard Python ``logging`` module to log its output.
By default only loggers with ``INFO`` level are displayed. To enable full output
change ``level = DEBUG`` for all logging handlers in the currently used .ini file.
This change will allow you to see much more detailed output in the log file or
console. This generally helps a lot to track issues.
Enable interactive debug mode
-----------------------------
To enable interactive debug mode simply comment out ``set debug = false`` in
the .ini file. This will trigger an interactive debugger each time
there is an error in the browser, or send a http link if an error occured in the backend. This
is a great tool for fast debugging as you get a handy Python console right
in the web view.
.. warning:: NEVER ENABLE THIS ON PRODUCTION! The interactive console
can be a serious security threat to your system.
|