Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.122 and 1.127

version 1.122, 2001/04/16 23:16:31 version 1.127, 2001/05/30 21:53:17
Line 28 Line 28
 # revokecustomrole (udom,uname,url,rdom,rnam,rolename) : Revoke a custom role  # revokecustomrole (udom,uname,url,rdom,rnam,rolename) : Revoke a custom role
 # appenv(hash)       : adds hash to session environment  # appenv(hash)       : adds hash to session environment
 # delenv(varname)    : deletes all environment entries starting with varname  # delenv(varname)    : deletes all environment entries starting with varname
 # store(hashref,symb,courseid,udom,uname,homeserver)  # store(hashref,symb,courseid,udom,uname)
 #                    : stores hash permanently for this url  #                    : stores hash permanently for this url
 #                      hashref needs to be given, and should be a \%hashname  #                      hashref needs to be given, and should be a \%hashname
 #                      the remaining args aren't required and if they aren't  #                      the remaining args aren't required and if they aren't
 #                      passed or are '' they will be derived from the ENV  #                      passed or are '' they will be derived from the ENV
 # cstore(hashref,symb,courseid,udom,uname,homeserver)  # cstore(hashref,symb,courseid,udom,uname)
 #                    : same as store but uses the critical interface to   #                    : same as store but uses the critical interface to 
 #                      guarentee a store  #                      guarentee a store
 # restore(symb,courseid,udom,uname,homeserver)  # restore(symb,courseid,udom,uname)
 #                    : returns hash for this symb, all args are optional  #                    : returns hash for this symb, all args are optional
 #                      if they aren't given they will be derived from the current  #                      if they aren't given they will be derived from the 
 #                      enviroment  #                      current enviroment
 # eget(namesp,array) : returns hash with keys from array filled in from namesp  # eget(namesp,array) : returns hash with keys from array filled in from namesp
 # get(namesp,array)  : returns hash with keys from array filled in from namesp  # get(namesp,array)  : returns hash with keys from array filled in from namesp
 # del(namesp,array)  : deletes keys out of array from namesp  # del(namesp,array)  : deletes keys out of array from namesp
Line 102 Line 102
 # 3/2 Gerd Kortemeyer  # 3/2 Gerd Kortemeyer
 # 3/15,3/19 Scott Harrison  # 3/15,3/19 Scott Harrison
 # 3/19,3/20 Gerd Kortemeyer  # 3/19,3/20 Gerd Kortemeyer
 # 3/22,3/27 Scott Harrison  # 3/22,3/27,4/2,4/16,4/17 Scott Harrison
   # 5/26,5/28 Gerd Kortemeyer
   # 5/30 H. K. Ng
   #
 package Apache::lonnet;  package Apache::lonnet;
   
 use strict;  use strict;
Line 686  sub devalidate { Line 688  sub devalidate {
 # ----------------------------------------------------------------------- Store  # ----------------------------------------------------------------------- Store
   
 sub store {  sub store {
     my ($storehash,$symb,$namespace,$domain,$stuname,$home) = @_;      my ($storehash,$symb,$namespace,$domain,$stuname) = @_;
       my $home='';
   
       if ($stuname) {
    $home=&homeserver($stuname,$domain);
       }
   
     if (!$symb) { unless ($symb=&symbread()) { return ''; } }      if (!$symb) { unless ($symb=&symbread()) { return ''; } }
   
     &devalidate($symb);      &devalidate($symb);
Line 701  sub store { Line 709  sub store {
         $namevalue.=escape($_).'='.escape($$storehash{$_}).'&';          $namevalue.=escape($_).'='.escape($$storehash{$_}).'&';
     } keys %$storehash;      } keys %$storehash;
     $namevalue=~s/\&$//;      $namevalue=~s/\&$//;
     return critical("store:$domain:$stuname:$namespace:$symb:$namevalue","$home");      return reply("store:$domain:$stuname:$namespace:$symb:$namevalue","$home");
 }  }
   
 # -------------------------------------------------------------- Critical Store  # -------------------------------------------------------------- Critical Store
   
 sub cstore {  sub cstore {
     my ($storehash,$symb,$namespace,$domain,$stuname,$home) = @_;      my ($storehash,$symb,$namespace,$domain,$stuname) = @_;
       my $home='';
   
       if ($stuname) {
    $home=&homeserver($stuname,$domain);
       }
   
     if (!$symb) { unless ($symb=&symbread()) { return ''; } }      if (!$symb) { unless ($symb=&symbread()) { return ''; } }
   
     &devalidate($symb);      &devalidate($symb);
Line 729  sub cstore { Line 743  sub cstore {
 # --------------------------------------------------------------------- Restore  # --------------------------------------------------------------------- Restore
   
 sub restore {  sub restore {
     my ($symb,$namespace,$domain,$stuname,$home) = @_;      my ($symb,$namespace,$domain,$stuname) = @_;
       my $home='';
   
       if ($stuname) {
    $home=&homeserver($stuname,$domain);
       }
   
     if (!$symb) {      if (!$symb) {
       unless ($symb=escape(&symbread())) { return ''; }        unless ($symb=escape(&symbread())) { return ''; }
     } else {      } else {
Line 862  sub rolesinit { Line 882  sub rolesinit {
             }              }
           }             } 
         } split(/&/,$rolesdump);          } split(/&/,$rolesdump);
           my $adv=0;
         map {          map {
             %thesepriv=();              %thesepriv=();
               if ($_ ne 'st') { $adv=1; }
             map {              map {
                 if ($_ ne '') {                  if ($_ ne '') {
     my ($privilege,$restrictions)=split(/&/,$_);      my ($privilege,$restrictions)=split(/&/,$_);
Line 880  sub rolesinit { Line 902  sub rolesinit {
             map { $thesestr.=':'.$_.'&'.$thesepriv{$_}; } keys %thesepriv;              map { $thesestr.=':'.$_.'&'.$thesepriv{$_}; } keys %thesepriv;
             $userroles.='user.priv.'.$_.'='.$thesestr."\n";              $userroles.='user.priv.'.$_.'='.$thesestr."\n";
         } keys %allroles;                      } keys %allroles;            
           $userroles.='user.adv='.$adv."\n";
           $ENV{'user.adv'}=$adv;
     }      }
     return $userroles;        return $userroles;  
 }  }
Line 1259  sub metadata_query { Line 1283  sub metadata_query {
     my ($query,$custom,$customshow)=@_;      my ($query,$custom,$customshow)=@_;
     # need to put in a library server loop here and return a hash      # need to put in a library server loop here and return a hash
     my %rhash;      my %rhash;
 #    for my $server (keys %libserv) {      for my $server (keys %libserv) {
     for my $server ('msul3') {  
  unless ($custom or $customshow) {   unless ($custom or $customshow) {
     my $reply=&reply("querysend:".&escape($query),$server);      my $reply=&reply("querysend:".&escape($query),$server);
     $rhash{$server}=$reply;      $rhash{$server}=$reply;
Line 1689  sub EXT { Line 1712  sub EXT {
         }          }
     } elsif ($realm eq 'course') {      } elsif ($realm eq 'course') {
 # ---------------------------------------------------------- course.description  # ---------------------------------------------------------- course.description
         my $section='';          return $ENV{'course.'.$ENV{'request.course.id'}.'.'.
         if ($ENV{'request.course.sec'}) {  
     $section='_'.$ENV{'request.course.sec'};  
         }  
         return $ENV{'course.'.$ENV{'request.course.id'}.$section.'.'.  
                               $spacequalifierrest};                                $spacequalifierrest};
     } elsif ($realm eq 'resource') {      } elsif ($realm eq 'resource') {
       if ($ENV{'request.course.id'}) {         if ($ENV{'request.course.id'}) {
 # ----------------------------------------------------- Cascading lookup scheme  # ----------------------------------------------------- Cascading lookup scheme
        my $symbp=&symbread();           my $symbp=&symbread();
        my $mapp=(split(/\_\_\_/,$symbp))[0];           my $mapp=(split(/\_\_\_/,$symbp))[0];
   
        my $symbparm=$symbp.'.'.$spacequalifierrest;           my $symbparm=$symbp.'.'.$spacequalifierrest;
        my $mapparm=$mapp.'___(all).'.$spacequalifierrest;           my $mapparm=$mapp.'___(all).'.$spacequalifierrest;
   
        my $seclevel=           my $seclevel=
             $ENV{'request.course.id'}.'.['.              $ENV{'request.course.id'}.'.['.
  $ENV{'request.course.sec'}.'].'.$spacequalifierrest;   $ENV{'request.course.sec'}.'].'.$spacequalifierrest;
        my $seclevelr=           my $seclevelr=
             $ENV{'request.course.id'}.'.['.              $ENV{'request.course.id'}.'.['.
  $ENV{'request.course.sec'}.'].'.$symbparm;   $ENV{'request.course.sec'}.'].'.$symbparm;
        my $seclevelm=           my $seclevelm=
             $ENV{'request.course.id'}.'.['.              $ENV{'request.course.id'}.'.['.
  $ENV{'request.course.sec'}.'].'.$mapparm;   $ENV{'request.course.sec'}.'].'.$mapparm;
   
        my $courselevel=           my $courselevel=
             $ENV{'request.course.id'}.'.'.$spacequalifierrest;              $ENV{'request.course.id'}.'.'.$spacequalifierrest;
        my $courselevelr=           my $courselevelr=
             $ENV{'request.course.id'}.'.'.$symbparm;              $ENV{'request.course.id'}.'.'.$symbparm;
        my $courselevelm=           my $courselevelm=
             $ENV{'request.course.id'}.'.'.$mapparm;              $ENV{'request.course.id'}.'.'.$mapparm;
   
 # ----------------------------------------------------------- first, check user  # ----------------------------------------------------------- first, check user
       my %resourcedata=get('resourcedata',           my %resourcedata=get('resourcedata',
                            ($courselevelr,$courselevelm,$courselevel));                             ($courselevelr,$courselevelm,$courselevel));
       if (($resourcedata{$courselevelr}!~/^error\:/) &&           if (($resourcedata{$courselevelr}!~/^error\:/) &&
           ($resourcedata{$courselevelr}!~/^con_lost/)) {               ($resourcedata{$courselevelr}!~/^con_lost/)) {
   
        if ($resourcedata{$courselevelr}) {            if ($resourcedata{$courselevelr}) { 
           return $resourcedata{$courselevelr}; }              return $resourcedata{$courselevelr}; }
        if ($resourcedata{$courselevelm}) {            if ($resourcedata{$courselevelm}) { 
           return $resourcedata{$courselevelm}; }              return $resourcedata{$courselevelm}; }
        if ($resourcedata{$courselevel}) { return $resourcedata{$courselevel}; }           if ($resourcedata{$courselevel}) { return $resourcedata{$courselevel}; }
   
       } else {        } else {
   if ($resourcedata{$courselevelr}!~/No such file/) {    if ($resourcedata{$courselevelr}!~/No such file/) {
Line 1789  sub EXT { Line 1808  sub EXT {
 # ---------------------------------------------------- Any other user namespace  # ---------------------------------------------------- Any other user namespace
     } elsif ($realm eq 'environment') {      } elsif ($realm eq 'environment') {
 # ----------------------------------------------------------------- environment  # ----------------------------------------------------------------- environment
         return $ENV{$spacequalifierrest};          return $ENV{'environment.'.$spacequalifierrest};
     } elsif ($realm eq 'system') {      } elsif ($realm eq 'system') {
 # ----------------------------------------------------------------- system.time  # ----------------------------------------------------------------- system.time
  if ($space eq 'time') {   if ($space eq 'time') {

Removed from v.1.122  
changed lines
  Added in v.1.127


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>