Index: modules/dblog/dblog.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/dblog/dblog.admin.inc,v
retrieving revision 1.22
diff -u -r1.22 dblog.admin.inc
--- modules/dblog/dblog.admin.inc	6 Jun 2009 10:27:42 -0000	1.22
+++ modules/dblog/dblog.admin.inc	22 Jun 2009 22:50:33 -0000
@@ -205,6 +205,7 @@
   $where = $args = array();
   foreach ($_SESSION['dblog_overview_filter'] as $key => $filter) {
     $filter_where = array();
+    $filter = (array)$filter;
     foreach ($filter as $value) {
       $filter_where[] = $filters[$key]['where'];
       $args[] = $value;
@@ -226,24 +227,16 @@
  * List dblog administration filters that can be applied.
  */
 function dblog_filters() {
-  $filters = array();
-
-  foreach (_dblog_get_message_types() as $type) {
-    $types[$type] = $type;
-  }
-
-  if (!empty($types)) {
-    $filters['type'] = array(
-      'title' => t('Type'),
-      'where' => "w.type = ':s'",
-      'options' => $types,
-    );
-  }
-
-  $filters['severity'] = array(
-    'title' => t('Severity'),
-    'where' => 'w.severity = :d',
-    'options' => watchdog_severity_levels(),
+  $filters = array(
+    'type' => array(
+      'where' => "w.type = ':s'"
+    ),
+    'severity' => array(
+      'where' => 'w.severity = :d'
+    ),
+    'name' => array(
+      'where' => "u.name = ':s'"
+    )
   );
 
   return $filters;
@@ -284,14 +277,37 @@
     '#collapsible' => TRUE,
     '#collapsed' => empty($session),
   );
-  foreach ($filters as $key => $filter) {
-    $form['filters']['status'][$key] = array(
-      '#title' => $filter['title'],
+
+  foreach (_dblog_get_message_types() as $type) {
+    $types[$type] = $type;
+  }
+
+  if (!empty($types)) {
+    $form['filters']['status']['type'] = array(
+      '#title' => t('Type'),
       '#type' => 'select',
       '#multiple' => TRUE,
       '#size' => 8,
-      '#options' => $filter['options'],
+      '#options' => $types,
     );
+  }
+  $form['filters']['status']['severity'] = array(
+    '#title' => t('Severity'),
+    '#type' => 'select',
+    '#multiple' => TRUE,
+    '#size' => 8,
+    '#options' => watchdog_severity_levels(),
+  );
+  $form['filters']['status']['name'] = array(
+    '#title' => t('User'),
+    '#type' => 'textfield',
+    '#size' => 30,
+    '#maxlength' => 60,
+    '#autocomplete_path' => 'user/autocomplete',
+    '#weight' => -1,
+  );
+
+  foreach ($filters as $key => $filter) {
     if (!empty($_SESSION['dblog_overview_filter'][$key])) {
       $form['filters']['status'][$key]['#default_value'] = $_SESSION['dblog_overview_filter'][$key];
     }
@@ -315,7 +331,7 @@
  * Validate result from dblog administration filter form.
  */
 function dblog_filter_form_validate($form, &$form_state) {
-  if ($form_state['values']['op'] == t('Filter') && empty($form_state['values']['type']) && empty($form_state['values']['severity'])) {
+  if ($form_state['values']['op'] == t('Filter') && empty($form_state['values']['type']) && empty($form_state['values']['severity']) && empty($form_state['values']['name'])) {
     form_set_error('type', t('You must select something to filter by.'));
   }
 }
