From 5c884401b555b34658a06b9b344067681a05ab45 Mon Sep 17 00:00:00 2001 From: bdauvergne Date: Fri, 8 Oct 2010 12:53:58 +0000 Subject: [PATCH] [admin] use logger from qommon git-svn-id: svn://localhost/lasso-conform/trunk@41 2a3a78c3-912c-0410-af21-e1fb2d1df599 --- lcs/admin/logger.ptl | 165 ------------------------------------------- lcs/admin/root.ptl | 2 +- lcs/root.ptl | 6 +- 3 files changed, 4 insertions(+), 169 deletions(-) delete mode 100644 lcs/admin/logger.ptl diff --git a/lcs/admin/logger.ptl b/lcs/admin/logger.ptl deleted file mode 100644 index 01c8648..0000000 --- a/lcs/admin/logger.ptl +++ /dev/null @@ -1,165 +0,0 @@ -import random - -from quixote import get_publisher, get_request, get_response, redirect -from quixote.directory import Directory - -from menu import * - -import lcs -from qommon import logger -from qommon import misc -from qommon.form import * -from lcs.users import User -from qommon import template - - -class ByUserDirectory(Directory): - def _q_lookup(self, component): - return ByUserPages(component) - - -class LoggerDirectory(Directory): - _q_exports = ['', 'download', 'by_user'] - - by_user = ByUserDirectory() - - def _q_index [html] (self): - get_response().breadcrumb.append( ('logger/', _('Logs')) ) - html_top('logger', title = _('Logs')) - request = get_request() - logfile = request.get_field('logfile', 'lcs.log') - if not logfile.startswith(str('lcs.log')) or str('/') in str(logfile): - return template.error_page(_('Bad log file: %s') % logfile) - logfilename = str(os.path.join(get_publisher().app_dir, logfile)) - - if not os.path.exists(logfilename): - _('Nothing to show') - else: - if logfile: - '%s' % (logfile, _('Download Raw Log File')) - else: - '%s' % _('Download Raw Log File') - - user_color_keys = {} - last_date = None - '\n' - '' - ' ' % _('Time') - ' ' % _('User') - ' ' % _('Message') - '\n' - '\n' - i = 1 - for line in file(logfilename): - d = logger.readline(line) - if not d: - continue - user_color_key = d['user_id'] - if user_color_key == 'anonymous': - user_color_key += d['ip'] - if not user_color_keys.has_key(user_color_key): - user_color_keys[user_color_key] = ''.join( - ['%x' % random.randint(0xc, 0xf) for x in range(3)]) - '' % ( - d['level'].lower(), user_color_keys[user_color_key]) - if (last_date != d['date']): - ' ' % (d['date'], d['hour'][:-4]) - last_date = d['date'] - else: - ' ' % (d['hour'][:-4]) - if d['user_id'] == 'anonymous': - userlabel = _('Anonymous') - ip = d['ip'] - ' ' % (ip, userlabel) - elif d['user_id'] == 'unlogged': - userlabel = _('Unlogged') - ip = d['ip'] - ' ' % (ip, userlabel) - else: - try: - user = User.get(d['user_id']) - except KeyError: - userlabel = _('Unknown') - else: - userlabel = htmltext(user.name.replace(str(' '), str(' '))) - ' ' % userlabel - ' ' % d['message'] - '\n' - '\n' - '
%s%s%s
%s %s%s%s%s%s%s
\n' - - logfiles = [x for x in os.listdir(get_publisher().app_dir) if x.startswith(str('lcs.log'))] - if len(logfiles) > 1: - options = [] - for lfile in logfiles: - firstline = file(os.path.join(get_publisher().app_dir, lfile)).readline() - d = logger.readline(firstline) - if not d: - continue - if logfile == lfile: - selected = 'selected="selected" ' - else: - selected = '' - options.append({'selected': selected, 'lfile': lfile, - 'date': '%s %s' % (d['date'], d['hour'])}) - - '
' - _('Select another logfile:') - '' - '' % _('Submit') - - - def download(self): - request = get_request() - logfile = request.get_field('logfile', 'lcs.log') - if not logfile.startswith(str('lcs.log')) or str('/') in logfile: - return template.error_page(_('Bad log file: %s') % logfile) - logfilename = os.path.join(get_publisher().app_dir, logfile) - response = get_response() - response.set_content_type('text/x-log', 'iso-8859-1') - response.set_header('content-disposition', 'attachment; filename=%s' % logfile) - return open(logfilename).read() - - -class ByUserPages(Directory): - _q_exports = [''] - - def __init__(self, component): - try: - self.user = User.get(component) - except KeyError: - raise TraversalError() - - def _q_index [html] (self): - html_top('logger', title = _('Logs')) - '

%s - %s

' % (_('User'), self.user.name) - - last_date = None - '' - '' - ' ' % _('Time') - ' ' % _('Message') - '' - '' - if os.path.exists(logger.logfile): - for line in file(logger.logfile): - d = logger.readline(line) - if not d or d['user_id'] != str(self.user.id): - continue - '' - if (last_date != d['date']): - ' ' % (d['date'], d['hour'][:-4]) - last_date = d['date'] - else: - ' ' % (d['hour'][:-4]) - ' ' % (d['url'], d['message']) - '' - '' - '
%s%s
%s %s%s%s
' - diff --git a/lcs/admin/root.ptl b/lcs/admin/root.ptl index 26bd4fd..df26195 100644 --- a/lcs/admin/root.ptl +++ b/lcs/admin/root.ptl @@ -5,7 +5,7 @@ from quixote.directory import Directory, AccessControlled import settings import users -import logger +from qommon.admin import logger from qommon import errors diff --git a/lcs/root.ptl b/lcs/root.ptl index 78fba32..d39a443 100644 --- a/lcs/root.ptl +++ b/lcs/root.ptl @@ -13,7 +13,7 @@ import liberty from qommon import saml2 from qommon import errors -from qommon import logger +from qommon import get_logger from qommon import get_cfg from qommon import template from qommon.form import * @@ -71,7 +71,7 @@ class LoginDirectory(Directory): _q_exports = [''] def _q_index [html] (self): - logger.info('login') + get_logger().info('login') ident_methods = get_cfg('identification', {}).get('methods', []) if len(ident_methods) == 0: @@ -389,7 +389,7 @@ class RootDirectory(Directory): def logout(self): - logger.info('logout') + get_logger().info('logout') session = get_session() if not session: return redirect('/')