version 1.940, 2008/01/22 23:12:02
|
version 1.948, 2008/03/10 23:26:28
|
Line 1064 sub inst_rulecheck {
|
Line 1064 sub inst_rulecheck {
|
$response=&unescape(&reply('instidrulecheck:'.&escape($udom). |
$response=&unescape(&reply('instidrulecheck:'.&escape($udom). |
':'.&escape($id).':'.$rulestr, |
':'.&escape($id).':'.$rulestr, |
$homeserver)); |
$homeserver)); |
|
} elsif ($item eq 'selfcreate') { |
|
$response=&unescape(&reply('instselfcreatecheck:'. |
|
&escape($udom).':'.&escape($uname). |
|
':'.$rulestr,$homeserver)); |
} |
} |
if ($response ne 'refused') { |
if ($response ne 'refused') { |
my @pairs=split(/\&/,$response); |
my @pairs=split(/\&/,$response); |
Line 1090 sub inst_userrules {
|
Line 1094 sub inst_userrules {
|
if ($check eq 'id') { |
if ($check eq 'id') { |
$response=&reply('instidrules:'.&escape($udom), |
$response=&reply('instidrules:'.&escape($udom), |
$homeserver); |
$homeserver); |
|
} elsif ($check eq 'email') { |
|
$response=&reply('instemailrules:'.&escape($udom), |
|
$homeserver); |
} else { |
} else { |
$response=&reply('instuserrules:'.&escape($udom), |
$response=&reply('instuserrules:'.&escape($udom), |
$homeserver); |
$homeserver); |
Line 1115 sub inst_userrules {
|
Line 1122 sub inst_userrules {
|
return (\%ruleshash,\@ruleorder); |
return (\%ruleshash,\@ruleorder); |
} |
} |
|
|
|
# ------------------------- Get Authentication and Language Defaults for Domain |
|
|
|
sub get_domain_defaults { |
|
my ($domain) = @_; |
|
my $cachetime = 60*60*24; |
|
my ($defauthtype,$defautharg,$deflang); |
|
my ($result,$cached)=&is_cached_new('domdefaults',$domain); |
|
if (defined($cached)) { |
|
if (ref($result) eq 'HASH') { |
|
return %{$result}; |
|
} |
|
} |
|
my %domdefaults; |
|
my %domconfig = |
|
&Apache::lonnet::get_dom('configuration',['defaults'],$domain); |
|
if (ref($domconfig{'defaults'}) eq 'HASH') { |
|
$domdefaults{'lang_def'} = $domconfig{'defaults'}{'lang_def'}; |
|
$domdefaults{'auth_def'} = $domconfig{'defaults'}{'auth_def'}; |
|
$domdefaults{'auth_arg_def'} = $domconfig{'defaults'}{'auth_arg_def'}; |
|
} else { |
|
$domdefaults{'lang_def'} = &domain($domain,'lang_def'); |
|
$domdefaults{'auth_def'} = &domain($domain,'auth_def'); |
|
$domdefaults{'auth_arg_def'} = &domain($domain,'auth_arg_def'); |
|
} |
|
&Apache::lonnet::do_cache_new('domdefaults',$domain,\%domdefaults, |
|
$cachetime); |
|
return %domdefaults; |
|
} |
|
|
# --------------------------------------------------- Assign a key to a student |
# --------------------------------------------------- Assign a key to a student |
|
|
sub assign_access_key { |
sub assign_access_key { |
Line 1650 sub absolute_url {
|
Line 1686 sub absolute_url {
|
return $protocol.$host_name; |
return $protocol.$host_name; |
} |
} |
|
|
|
# |
|
# Server side include. |
|
# Parameters: |
|
# fn Possibly encrypted resource name/id. |
|
# form Hash that describes how the rendering should be done |
|
# and other things. |
|
# Returns: |
|
# Scalar context: The content of the reply. |
|
# Array context: 2 element list of the content and the full response variable. |
|
# |
|
# Returns: |
|
# The content of the response. |
sub ssi { |
sub ssi { |
|
|
my ($fn,%form)=@_; |
my ($fn,%form)=@_; |
|
my $count = scalar(@_); |
|
|
|
|
my $ua=new LWP::UserAgent; |
my $ua=new LWP::UserAgent; |
|
|
Line 1669 sub ssi {
|
Line 1719 sub ssi {
|
|
|
$request->header(Cookie => $ENV{'HTTP_COOKIE'}); |
$request->header(Cookie => $ENV{'HTTP_COOKIE'}); |
my $response=$ua->request($request); |
my $response=$ua->request($request); |
|
my $status = $response->code; |
|
|
return $response->content; |
if (wantarray) { |
|
return ($response->content, $response); |
|
} else { |
|
return $response->content; |
|
} |
} |
} |
|
|
sub externalssi { |
sub externalssi { |
Line 2394 sub userrolelog {
|
Line 2449 sub userrolelog {
|
} |
} |
|
|
sub get_course_adv_roles { |
sub get_course_adv_roles { |
my $cid=shift; |
my ($cid,$codes) = @_; |
$cid=$env{'request.course.id'} unless (defined($cid)); |
$cid=$env{'request.course.id'} unless (defined($cid)); |
my %coursehash=&coursedescription($cid); |
my %coursehash=&coursedescription($cid); |
my %nothide=(); |
my %nothide=(); |
Line 2419 sub get_course_adv_roles {
|
Line 2474 sub get_course_adv_roles {
|
if ((&privileged($username,$domain)) && |
if ((&privileged($username,$domain)) && |
(!$nothide{$username.':'.$domain})) { next; } |
(!$nothide{$username.':'.$domain})) { next; } |
if ($role eq 'cr') { next; } |
if ($role eq 'cr') { next; } |
my $key=&plaintext($role); |
if ($codes) { |
if ($section) { $key.=' (Sec/Grp '.$section.')'; } |
if ($section) { $role .= ':'.$section; } |
if ($returnhash{$key}) { |
if ($returnhash{$role}) { |
$returnhash{$key}.=','.$username.':'.$domain; |
$returnhash{$role}.=','.$username.':'.$domain; |
|
} else { |
|
$returnhash{$role}=$username.':'.$domain; |
|
} |
} else { |
} else { |
$returnhash{$key}=$username.':'.$domain; |
my $key=&plaintext($role); |
|
if ($section) { $key.=' (Section '.$section.')'; } |
|
if ($returnhash{$key}) { |
|
$returnhash{$key}.=','.$username.':'.$domain; |
|
} else { |
|
$returnhash{$key}=$username.':'.$domain; |
|
} |
} |
} |
} |
} |
return %returnhash; |
return %returnhash; |
} |
} |
|
|
Line 2588 sub courseidput {
|
Line 2652 sub courseidput {
|
|
|
sub courseiddump { |
sub courseiddump { |
my ($domfilter,$descfilter,$sincefilter,$instcodefilter,$ownerfilter, |
my ($domfilter,$descfilter,$sincefilter,$instcodefilter,$ownerfilter, |
$coursefilter,$hostidflag,$hostidref,$typefilter,$regexp_ok)=@_; |
$coursefilter,$hostidflag,$hostidref,$typefilter,$regexp_ok, |
|
$selfenrollonly)=@_; |
my $as_hash = 1; |
my $as_hash = 1; |
my %returnhash; |
my %returnhash; |
if (!$domfilter) { $domfilter=''; } |
if (!$domfilter) { $domfilter=''; } |
Line 2605 sub courseiddump {
|
Line 2670 sub courseiddump {
|
$sincefilter.':'.&escape($descfilter).':'. |
$sincefilter.':'.&escape($descfilter).':'. |
&escape($instcodefilter).':'.&escape($ownerfilter). |
&escape($instcodefilter).':'.&escape($ownerfilter). |
':'.&escape($coursefilter).':'.&escape($typefilter). |
':'.&escape($coursefilter).':'.&escape($typefilter). |
':'.&escape($regexp_ok).':'.$as_hash,$tryserver); |
':'.&escape($regexp_ok).':'.$as_hash.':'. |
|
&escape($selfenrollonly),$tryserver); |
my @pairs=split(/\&/,$rep); |
my @pairs=split(/\&/,$rep); |
foreach my $item (@pairs) { |
foreach my $item (@pairs) { |
my ($key,$value)=split(/\=/,$item,2); |
my ($key,$value)=split(/\=/,$item,2); |
Line 3527 sub set_userprivs {
|
Line 3593 sub set_userprivs {
|
} |
} |
foreach my $role (keys(%{$allroles})) { |
foreach my $role (keys(%{$allroles})) { |
my %thesepriv; |
my %thesepriv; |
if (($role=~/^au/) || ($role=~/^ca/)) { $author=1; } |
if (($role=~/^au/) || ($role=~/^ca/) || ($role=~/^aa/)) { $author=1; } |
foreach my $item (split(/:/,$$allroles{$role})) { |
foreach my $item (split(/:/,$$allroles{$role})) { |
if ($item ne '') { |
if ($item ne '') { |
my ($privilege,$restrictions)=split(/&/,$item); |
my ($privilege,$restrictions)=split(/&/,$item); |
Line 5257 sub plaintext {
|
Line 5323 sub plaintext {
|
# ----------------------------------------------------------------- Assign Role |
# ----------------------------------------------------------------- Assign Role |
|
|
sub assignrole { |
sub assignrole { |
my ($udom,$uname,$url,$role,$end,$start,$deleteflag)=@_; |
my ($udom,$uname,$url,$role,$end,$start,$deleteflag,$selfenroll)=@_; |
my $mrole; |
my $mrole; |
if ($role =~ /^cr\//) { |
if ($role =~ /^cr\//) { |
my $cwosec=$url; |
my $cwosec=$url; |
Line 5291 sub assignrole {
|
Line 5357 sub assignrole {
|
} else { |
} else { |
$refused = 1; |
$refused = 1; |
} |
} |
if ($refused) { |
if ($refused) { |
&logthis('Refused assignrole: '.$udom.' '.$uname.' '.$url. |
if (($selfenroll == 1) && ($role eq 'st') && ($udom eq $env{'user.domain'}) && ($uname eq $env{'user.name'})) { |
' '.$role.' '.$end.' '.$start.' by '. |
$refused = ''; |
$env{'user.name'}.' at '.$env{'user.domain'}); |
} else { |
return 'refused'; |
&logthis('Refused assignrole: '.$udom.' '.$uname.' '.$url. |
|
' '.$role.' '.$end.' '.$start.' by '. |
|
$env{'user.name'}.' at '.$env{'user.domain'}); |
|
return 'refused'; |
|
} |
} |
} |
} |
} |
$mrole=$role; |
$mrole=$role; |
Line 5489 sub modifystudent {
|
Line 5559 sub modifystudent {
|
} |
} |
|
|
sub modify_student_enrollment { |
sub modify_student_enrollment { |
my ($udom,$uname,$uid,$first,$middle,$last,$gene,$usec,$end,$start,$type,$locktype,$cid) = @_; |
my ($udom,$uname,$uid,$first,$middle,$last,$gene,$usec,$end,$start,$type,$locktype,$cid,$selfenroll) = @_; |
my ($cdom,$cnum,$chome); |
my ($cdom,$cnum,$chome); |
if (!$cid) { |
if (!$cid) { |
unless ($cid=$env{'request.course.id'}) { |
unless ($cid=$env{'request.course.id'}) { |
Line 5547 sub modify_student_enrollment {
|
Line 5617 sub modify_student_enrollment {
|
if ($usec) { |
if ($usec) { |
$uurl.='/'.$usec; |
$uurl.='/'.$usec; |
} |
} |
return &assignrole($udom,$uname,$uurl,'st',$end,$start); |
return &assignrole($udom,$uname,$uurl,'st',$end,$start,undef,$selfenroll); |
} |
} |
|
|
sub format_name { |
sub format_name { |
Line 5666 ENDINITMAP
|
Line 5736 ENDINITMAP
|
sub is_course { |
sub is_course { |
my ($cdom,$cnum) = @_; |
my ($cdom,$cnum) = @_; |
my %courses = &courseiddump($cdom,'.',1,'.','.',$cnum,undef, |
my %courses = &courseiddump($cdom,'.',1,'.','.',$cnum,undef, |
undef,'.',undef,1); |
undef,'.'); |
if (exists($courses{$cdom.'_'.$cnum})) { |
if (exists($courses{$cdom.'_'.$cnum})) { |
return 1; |
return 1; |
} |
} |
Line 9346 put_dom($namespace,$storehash,$udom,$uho
|
Line 9416 put_dom($namespace,$storehash,$udom,$uho
|
domain level either on specified domain server ($uhome) or primary domain |
domain level either on specified domain server ($uhome) or primary domain |
server ($udom and $uhome are optional) |
server ($udom and $uhome are optional) |
|
|
|
=item * |
|
|
|
get_domain_defaults($target_domain) : returns hash with defaults for |
|
authentication and language in the domain. Keys are: auth_def, auth_arg_def, |
|
lang_def; corresponsing values are authentication type (internal, krb4, krb5, |
|
or localauth), initial password or a kerberos realm, language (e.g., en-us). |
|
Values are retrieved from cache (if current), or from domain's configuration.db |
|
(if available), or lastly from values in lonTabs/dns_domain,tab, |
|
or lonTabs/domain.tab. |
|
|
|
%domdefaults = &get_auth_defaults($target_domain); |
|
|
=back |
=back |
|
|
=head2 Network Status Functions |
=head2 Network Status Functions |