def _event_log(msg, is_important=False): """ Adds an item to the event log """ username = None qa_group = None if 'username' in session: username = session['username'] if not username: username = '******' if 'qa_group' in session: qa_group = session['qa_group'] if not qa_group: qa_group = 'admin' db = LvfsDatabase(os.environ) db_eventlog = LvfsDatabaseEventlog(db) db_eventlog.add(msg, username, qa_group, _get_client_address(), is_important)
def eventlog(start=0, length=20): """ Show an event log of user actions. """ # security check if not session['qa_capability']: return error_permission_denied('Unable to show event log for non-QA user') # get the page selection correct db = LvfsDatabase(os.environ) db_eventlog = LvfsDatabaseEventlog(db) if session['username'] == 'admin': eventlog_len = db_eventlog.size() else: eventlog_len = db_eventlog.size_for_qa_group(session['qa_group']) nr_pages = int(math.ceil(eventlog_len / float(length))) # table contents try: if session['username'] == 'admin': items = db_eventlog.get_items(int(start), int(length)) else: items = db_eventlog.get_items_for_qa_group(session['qa_group'], int(start), int(length)) except CursorError as e: return error_internal(str(e)) if len(items) == 0: return error_internal('No event log available!') # limit this to keep the UI sane if nr_pages > 20: nr_pages = 20 html = '' for i in range(nr_pages): if int(start) == i * int(length): html += '%i ' % (i + 1) else: html += '<a href="/lvfs/eventlog/%i/%s">%i</a> ' % (i * int(length), int(length), i + 1) return render_template('eventlog.html', events=items, pagination_footer=html)