Diff for /loncom/auth/lonroles.pm between versions 1.319 and 1.320

version 1.319, 2016/10/27 21:06:00 version 1.320, 2016/10/27 22:51:08
Line 396  sub handler { Line 396  sub handler {
                 }                  }
                 if ($numdh) {                  if ($numdh) {
 # Is this an ad hoc custom role in a course/community?  # Is this an ad hoc custom role in a course/community?
                    if (my ($domain,$rolename,$coursenum) = ($envkey =~ m{^form\.cr/($match_domain)/\1\-domainconfig/(\w+)\./\1/($match_courseid)$})) {                      if (my ($domain,$rolename,$coursenum) = ($envkey =~ m{^form\.cr/($match_domain)/\1\-domainconfig/(\w+)\./\1/($match_courseid)$})) {
                        if ($dhroles{$domain}) {                           if ($dhroles{$domain}) { 
                            my @adhoc;                               my @adhoc; 
                            if ($env{'environment.adhocroles.'.$domain}) {                              if ($env{'environment.adhocroles.'.$domain}) {
                                @adhoc = split(',',$env{'environment.adhocroles.'.$domain});                                  @adhoc = split(',',$env{'environment.adhocroles.'.$domain});
                            } else {                              } else {
                                my %adhocroles = &Apache::lonnet::userenvironment($env{'user.domain'},$env{'user.name'},                                  my %adhocroles = &Apache::lonnet::userenvironment($env{'user.domain'},$env{'user.name'},
                                                                                  'adhocroles.'.$domain);                                                                                    'adhocroles.'.$domain);
                                if (keys(%adhocroles)) {                                  if (keys(%adhocroles)) {
                                    @adhoc = split(',',$adhocroles{'adhocroles.'.$domain});                                      @adhoc = split(',',$adhocroles{'adhocroles.'.$domain});
                                };                                  }
                            }                              }
                            if ((@adhoc > 0) && ($rolename ne '')) {                              if ((@adhoc > 0) && ($rolename ne '')) {
                                if (grep(/^\Q$rolename\E$/,@adhoc)) {                                  if (grep(/^\Q$rolename\E$/,@adhoc)) {
                                    if (&Apache::lonnet::check_adhoc_privs($domain,$coursenum,$update,$refresh,$now,                                      if (&Apache::lonnet::check_adhoc_privs($domain,$coursenum,$update,$refresh,$now,
                                                                           "cr/$domain/$domain".'-domainconfig/'.$rolename)) {                                                                             "cr/$domain/$domain".'-domainconfig/'.$rolename)) {
                                        &Apache::lonnet::appenv({"environment.internal.$domain.$coursenum.cr/$domain/$domain".                                          &Apache::lonnet::appenv({"environment.internal.$domain.$coursenum.cr/$domain/$domain".
                                                                 '-domainconfig/'."$rolename.adhoc" => time});                                                                   '-domainconfig/'."$rolename.adhoc" => time});
                                    }                                      }
                                } else {                                  } else {
                                    delete($env{$envkey});                                      delete($env{$envkey});
                                }                                  }
                            } else {                              } else {
                                delete($env{$envkey});                                  delete($env{$envkey});
                            }                              }
                        } else {                          } else {
                            delete($env{$envkey});                              delete($env{$envkey});
                        }                          }
                        last;                          last;
                    }                      }
                }                  }
            }              }
         }          }
         foreach $envkey (keys(%env)) {          foreach $envkey (keys(%env)) {
             next if ($envkey!~/^user\.role\./);              next if ($envkey!~/^user\.role\./);

Removed from v.1.319  
changed lines
  Added in v.1.320


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