Index: asset_wizard.inc
===================================================================
--- asset_wizard.inc	(revision 252)
+++ asset_wizard.inc	(working copy)
@@ -803,6 +803,53 @@
   return FALSE;
 }
 
+function asset_wizard_directory_options($dir = ''){    
+  global $user;   
+
+  // build directory list and filename options array    
+  $sql = 'SELECT DISTINCT(a.aid) FROM {asset} a ';    
+  $args = array();    
+
+  // for everyone but users with 'administer assets' access control,    
+  // only get assets with proper permissions.   
+  if(user_access('administer assets')){   
+    $sql .= 'WHERE a.dirname LIKE "%s%" ';    
+    $args = array($dir);    
+  }else{    
+    $sql .= 'LEFT JOIN {asset_role} r ON a.aid=r.aid '    
+      . 'WHERE (a.uid = %d '   
+      . 'OR a.status = 1 '   
+      . 'OR (r.rid IN (%s) AND r.status = 1) ) '   
+      . 'AND a.dirname LIKE "%s%" ';   
+    $args = array($user->uid, join(array_keys($user->roles),','), $dir);    
+    // $sql .= 'WHERE a.dirname="%s" ';   
+    // $args = array($dir);   
+  }   
+  $sql .= ' AND a.type = "directory" ORDER BY a.dirname ASC';   
+
+  $result = db_query($sql, $args);    
+  $options = array();   
+  while($asset = db_fetch_object($result)){   
+    $asset = asset_load($asset->aid);   
+    $dir = $asset->dirname . ($asset->dirname ? '/' : '') . $asset->filename;   
+    $parts = explode('/',$dir);   
+    if(count($parts)){    
+      $name = str_repeat('--', count($parts)) . ' ' . $asset->title;    
+    }else{    
+      $name = $asset->title;    
+    }   
+    $options[$dir] = $name;   
+  }   
+
+  if(user_access('administer assets')){   
+    $options[''] = 'assets';    
+  }   
+
+  ksort($options);    
+  return $options;    
+
+}
+
 function asset_wizard_location_bar($dir = ''){
   global $user;
   $defaults = array_unique(array($dir, 'PUBLIC', $user->name));
