Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.1048.2.1 and 1.1048.2.4

version 1.1048.2.1, 2010/01/15 00:14:01 version 1.1048.2.4, 2010/09/03 19:20:54
Line 4038  sub role_status { Line 4038  sub role_status {
                             );                              );
                             my $spec=$$role.'.'.$$where;                              my $spec=$$role.'.'.$$where;
                             my ($tdummy,$tdomain,$trest)=split(/\//,$$where);                              my ($tdummy,$tdomain,$trest)=split(/\//,$$where);
                             if ($$role eq 'gr') {  
                                 my %rolehash = &get('roles',[$$where.'_'.$$role],$env{'user.domain'},  
                                                     $env{'user.name'})=@_;  
                                 my ($trole) = split('_',$role,1);  
                                 (undef,my $group_privs) = split(/\//,$trole);  
                                 $group_privs = &unescape($group_privs);  
                             }  
                             if ($$role =~ /^cr\//) {                              if ($$role =~ /^cr\//) {
                                 &custom_roleprivs(\%allroles,$$role,$tdomain,$trest,$spec,$$where);                                  &custom_roleprivs(\%allroles,$$role,$tdomain,$trest,$spec,$$where);
                             } elsif ($$role eq 'gr') {                              } elsif ($$role eq 'gr') {
Line 4076  sub role_status { Line 4069  sub role_status {
     }      }
 }  }
   
   sub curr_role_status {
       my ($start,$end,$refresh,$then) = @_;
       if (($start) && ($start<0)) { return 'deleted' };
       my $status = 'active';
       if (($end) && ($end<=$then)) {
           $status = 'previous';
       }
       if (($start) && ($refresh<$start)) {
           $status = 'future';
       }
       return $status;
   }
   
   sub gather_roleprivs {
       my ($allroles,$allgroups,$userroles,$area,$role,$tstart,$tend) = @_;
       return unless ((ref($allroles) eq 'HASH') && (ref($allgroups) eq 'HASH') && (ref($userroles) eq 'HASH'));
       if (($area ne '') && ($role ne '')) {
           my $spec = $role.'.'.$area;
           my ($tdummy,$tdomain,$trest)=split(/\//,$area);
           if ($role =~ /^cr\//) {
               &custom_roleprivs($allroles,$role,$tdomain,$trest,$spec,$area);
           } elsif ($role eq 'gr') {
               my %rolehash = &get('roles',[$area.'_'.$role],$env{'user.domain'},
                                   $env{'user.name'});
               my $trole = split('_',$rolehash{$area.'_'.$role},1);
               (undef,my $group_privs) = split(/\//,$trole);
               $group_privs = &unescape($group_privs);
               &group_roleprivs($allgroups,$area,$group_privs,$tend,$tstart);
           } else {
               &standard_roleprivs($allroles,$role,$tdomain,$spec,$trest,$area);
           }
       }
       return;
   }
   
 sub check_adhoc_privs {  sub check_adhoc_privs {
     my ($cdom,$cnum,$then,$refresh,$now,$checkrole) = @_;      my ($cdom,$cnum,$then,$refresh,$now,$checkrole) = @_;
     my $cckey = 'user.role.'.$checkrole.'./'.$cdom.'/'.$cnum;      my $cckey = 'user.role.'.$checkrole.'./'.$cdom.'/'.$cnum;
Line 4820  sub usertools_access { Line 4848  sub usertools_access {
     }      }
 }  }
   
   sub is_course_owner {
       my ($cdom,$cnum,$udom,$uname) = @_;
       if (($udom eq '') || ($uname eq '')) {
           $udom = $env{'user.domain'};
           $uname = $env{'user.name'};
       }
       unless (($udom eq '') || ($uname eq '')) {
           if (exists($env{'course.'.$cdom.'_'.$cnum.'.internal.courseowner'})) {
               if ($env{'course.'.$cdom.'_'.$cnum.'.internal.courseowner'} eq $uname.':'.$udom) {
                   return 1;
               } else {
                   my %courseinfo = &Apache::lonnet::coursedescription($cdom.'/'.$cnum);
                   if ($courseinfo{'internal.courseowner'} eq $uname.':'.$udom) {
                       return 1;
                   }
               }
           }
       }
       return;
   }
   
 sub is_advanced_user {  sub is_advanced_user {
     my ($udom,$uname) = @_;      my ($udom,$uname) = @_;
     my %roleshash = &get_my_roles($uname,$udom,'userroles',undef,undef,undef,1);      my %roleshash = &get_my_roles($uname,$udom,'userroles',undef,undef,undef,1);
Line 6263  sub assignrole { Line 6312  sub assignrole {
                     }                      }
                 } elsif (($selfenroll == 1) && ($role eq 'st') && ($udom eq $env{'user.domain'}) && ($uname eq $env{'user.name'})) {                  } elsif (($selfenroll == 1) && ($role eq 'st') && ($udom eq $env{'user.domain'}) && ($uname eq $env{'user.name'})) {
                     $refused = '';                      $refused = '';
                 } elsif (($selfenroll == 1) && ($role eq 'st') && ($cdom eq 'gci') && ($cnum eq '1H96711d710194bfegcil1')) {                  } elsif (($selfenroll == 1) && ($role eq 'st') && ($cdom eq 'gci') && (($cnum eq '1H96711d710194bfegcil1') || ($cnum eq '5422913620b814c90gcil1'))) {
                     if ($env{'request.role'} eq 'cc./gci/9615072b469884921gcil1') {                      if ($env{'request.role'} eq 'cc./gci/9615072b469884921gcil1') {
                         $refused = '';                          $refused = '';
                     }                      }

Removed from v.1.1048.2.1  
changed lines
  Added in v.1.1048.2.4


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