version 1.1172.2.146.2.21, 2024/08/19 00:27:52
|
version 1.1172.2.146.2.22, 2024/08/25 17:44:07
|
Line 3666 sub can_edit_resource {
|
Line 3666 sub can_edit_resource {
|
} |
} |
} |
} |
|
|
|
# |
|
# For /adm/viewcoauthors can only edit if author or co-author who is manager. |
|
# |
|
|
|
if (($resurl eq '/adm/viewcoauthors') && ($cnum ne '') && ($cdom ne '')) { |
|
if (((&allowed('cca',"$cdom/$cnum")) || |
|
(&allowed('caa',"$cdom/$cnum"))) || |
|
((&allowed('vca',"$cdom/$cnum") || |
|
&allowed('vaa',"$cdom/$cnum")) && |
|
($env{"environment.internal.manager./$cdom/$cnum"}))) { |
|
$home = $env{'user.home'}; |
|
$cfile = $resurl; |
|
if ($env{'form.forceedit'}) { |
|
$forceview = 1; |
|
} else { |
|
$forceedit = 1; |
|
} |
|
return ($cfile,$home,$switchserver,$forceedit,$forceview); |
|
} else { |
|
return; |
|
} |
|
} |
|
|
if ($env{'request.course.id'}) { |
if ($env{'request.course.id'}) { |
my $crsedit = &Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
my $crsedit = &Apache::lonnet::allowed('mdc',$env{'request.course.id'}); |
if ($group ne '') { |
if ($group ne '') { |
Line 6813 sub rolesinit {
|
Line 6836 sub rolesinit {
|
if (($trole eq 'ca') || ($trole eq 'aa')) { |
if (($trole eq 'ca') || ($trole eq 'aa')) { |
(undef,my ($audom,$auname)) = split(/\//,$area); |
(undef,my ($audom,$auname)) = split(/\//,$area); |
unless ($gotcoauconfig{$area}) { |
unless ($gotcoauconfig{$area}) { |
my @ca_settings = ('authoreditors'); |
my @ca_settings = ('authoreditors','coauthorlist','coauthoroptin'); |
my %info = &userenvironment($audom,$auname,@ca_settings); |
my %info = &userenvironment($audom,$auname,@ca_settings); |
$gotcoauconfig{$area} = 1; |
$gotcoauconfig{$area} = 1; |
foreach my $item (@ca_settings) { |
foreach my $item (@ca_settings) { |
Line 8026 sub usertools_access {
|
Line 8049 sub usertools_access {
|
aboutme => 1, |
aboutme => 1, |
blog => 1, |
blog => 1, |
portfolio => 1, |
portfolio => 1, |
|
portaccess => 1, |
timezone => 1, |
timezone => 1, |
); |
); |
} |
} |
Line 8611 sub allowed {
|
Line 8635 sub allowed {
|
|
|
# If this is generating or modifying users, exit with special codes |
# If this is generating or modifying users, exit with special codes |
|
|
if (':csu:cdc:ccc:cin:cta:cep:ccr:cst:cad:cli:cau:cdg:cca:caa:'=~/\:\Q$priv\E\:/) { |
if (':csu:cdc:ccc:cin:cta:cep:ccr:cst:cad:cli:cau:cdg:cca:caa::vca:vaa:'=~/\:\Q$priv\E\:/) { |
if (($priv eq 'cca') || ($priv eq 'caa')) { |
if (($priv eq 'cca') || ($priv eq 'caa')) { |
my ($audom,$auname)=split('/',$uri); |
my ($audom,$auname)=split('/',$uri); |
# no author name given, so this just checks on the general right to make a co-author in this domain |
# no author name given, so this just checks on the general right to make a co-author in this domain |
Line 8620 sub allowed {
|
Line 8644 sub allowed {
|
if (($auname ne $env{'user.name'} && $env{'request.role'} !~ /^dc\./) || |
if (($auname ne $env{'user.name'} && $env{'request.role'} !~ /^dc\./) || |
(($audom ne $env{'user.domain'} && $env{'request.role'} !~ /^dc\./) && |
(($audom ne $env{'user.domain'} && $env{'request.role'} !~ /^dc\./) && |
($audom ne $env{'request.role.domain'}))) { return ''; } |
($audom ne $env{'request.role.domain'}))) { return ''; } |
|
} elsif (($priv eq 'vca') || ($priv eq 'vaa')) { |
|
my ($audom,$auname)=split('/',$uri); |
|
unless ($auname) { return $thisallowed; } |
|
unless (($env{'request.role'} eq "dc./$audom") || |
|
($env{'request.role'} eq "ca./$uri")) { |
|
return ''; |
|
} |
} |
} |
return $thisallowed; |
return $thisallowed; |
} |
} |
Line 10373 sub plaintext {
|
Line 10404 sub plaintext {
|
sub assignrole { |
sub assignrole { |
my ($udom,$uname,$url,$role,$end,$start,$deleteflag,$selfenroll, |
my ($udom,$uname,$url,$role,$end,$start,$deleteflag,$selfenroll, |
$context)=@_; |
$context)=@_; |
my $mrole; |
my ($mrole,$rolelogcontext); |
if ($role =~ /^cr\//) { |
if ($role =~ /^cr\//) { |
my $cwosec=$url; |
my $cwosec=$url; |
$cwosec=~s/^\/($match_domain)\/($match_courseid)\/.*/$1\/$2/; |
$cwosec=~s/^\/($match_domain)\/($match_courseid)\/.*/$1\/$2/; |
Line 10503 sub assignrole {
|
Line 10534 sub assignrole {
|
} |
} |
} |
} |
} |
} |
|
} elsif (($context eq 'author') && (($role eq 'ca' || $role eq 'aa'))) { |
|
if ($url =~ m{^/($match_domain)/($match_username)$}) { |
|
my ($audom,$auname) = ($1,$2); |
|
if ((&Apache::lonnet::allowed('v'.$role,"$audom/$auname")) && |
|
($env{"environment.internal.manager.$url"})) { |
|
$refused = ''; |
|
$rolelogcontext = 'coauthor'; |
|
} |
|
} |
} |
} |
if ($refused) { |
if ($refused) { |
&logthis('Refused assignrole: '.$udom.' '.$uname.' '.$url. |
&logthis('Refused assignrole: '.$udom.' '.$uname.' '.$url. |
Line 10570 sub assignrole {
|
Line 10610 sub assignrole {
|
&domainrolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, |
&domainrolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, |
$context); |
$context); |
} elsif (($role eq 'ca') || ($role eq 'aa')) { |
} elsif (($role eq 'ca') || ($role eq 'aa')) { |
|
if ($rolelogcontext eq '') { |
|
$rolelogcontext = $context; |
|
} |
&coauthorrolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, |
&coauthorrolelog($role,$uname,$udom,$url,$origstart,$origend,$delflag, |
$context); |
$rolelogcontext); |
} |
} |
if ($role eq 'cc') { |
if ($role eq 'cc') { |
&autoupdate_coowners($url,$end,$start,$uname,$udom); |
&autoupdate_coowners($url,$end,$start,$uname,$udom); |