--- loncom/lonsql	2007/09/12 03:40:29	1.88
+++ loncom/lonsql	2007/09/12 20:29:13	1.89
@@ -3,7 +3,7 @@
 # The LearningOnline Network
 # lonsql - LON TCP-MySQL-Server Daemon for handling database requests.
 #
-# $Id: lonsql,v 1.88 2007/09/12 03:40:29 raeburn Exp $
+# $Id: lonsql,v 1.89 2007/09/12 20:29:13 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -456,6 +456,8 @@ sub make_new_child {
                                           $srchtype,$srchterm);
 	    } elsif ($query eq 'instdirsearch') {
 		$result = &do_inst_dir_search($searchdomain,$arg1,$arg2,$arg3);
+            } elsif ($query eq 'getinstuser') {
+                $result = &get_inst_user($searchdomain,$arg1,$arg2);
             } elsif ($query eq 'prepare activity log') {
                 my ($cid,$domain) = map {&unescape($_);} ($arg1,$arg2);
                 &logthis('preparing activity log tables for '.$cid);
@@ -588,6 +590,30 @@ sub do_inst_dir_search {
             }
         }
         $response=~s/\&$//;
+    } else {
+        $response = 'unavailable';
+    }
+    return $response;
+}
+
+sub get_inst_user {
+    my ($domain,$uname,$id) = @_;
+    $uname = &unescape($uname);
+    $id = &unescape($id);
+    my (%instusers,%instids,$result,$response);
+    eval {
+        local($SIG{__DIE__})='DEFAULT';
+        $result=&localenroll::get_userinfo($domain,$uname,$id,\%instusers,
+                                           \%instids);
+    };
+    if ($result eq 'ok') {
+        if (keys(%instusers) > 0) {
+            foreach my $key (keys(%instusers)) {
+                my $usrstr = &Apache::lonnet::freeze_escape($instusers{$key});
+                $response .= &escape(&escape($key).'='.$usrstr).'&';
+            }
+        }
+        $response=~s/\&$//;
     } else {
         $response = 'unavailable';
     }