Index: usernode.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/usernode/usernode.module,v
retrieving revision 1.34
diff -u -r1.34 usernode.module
--- usernode.module	26 Nov 2007 20:26:18 -0000	1.34
+++ usernode.module	20 May 2008 20:03:20 -0000
@@ -607,6 +607,18 @@
         'field' => 'uid'
       ),
     ),
+    'fields' => array(
+      'rid' => array(
+        'name' => t('Usernode: Role'),
+        'handler' => array(
+          'usernode_views_handler_field_roles' => t('normal text'),
+        ),
+        'sortable' => true,
+        'uid' => 'uid',
+        'addlfields' => array('uid'),
+        'help' => t('This will display the roles of the user.'),
+      ),
+    ),
     'filters' => array(
       'rid' => array(
         'name' => t('Usernode: Role'),
@@ -709,6 +721,16 @@
 }
 
 /**
+ * Callback for usernode_views_tables(): roles as a plain text.
+ */
+function usernode_views_handler_field_roles($fieldinfo, $fielddata, $value, $data) {
+  $usernode_user = user_load(array('uid'=>$data->usernode_users_roles_uid));
+  if (isset($usernode_user->roles)) {
+    return theme('user_roles', $usernode_user->roles);
+  }  
+}
+
+/**
  * Callback for usernode_views_tables(): email address as a link.
  */
 function usernode_views_handler_field_email($fieldinfo, $fielddata, $value, $data) {
@@ -818,3 +840,11 @@
 
   return $views;
 }
+
+function theme_user_roles($roles) {
+  $output = '<ul>';
+  foreach ($roles as $role) {
+    $output .= '<li>'. check_plain($role) .'</li>';
+  }
+  return $output .= '</ul>';
+}
