version 1.179, 2006/02/09 20:30:47
|
version 1.181, 2006/03/02 18:54:49
|
Line 906 sub build_posting_display {
|
Line 906 sub build_posting_display {
|
} else { |
} else { |
@{$$namesort{$lastname}{$firstname}} = ("$idx"); |
@{$$namesort{$lastname}{$firstname}} = ("$idx"); |
} |
} |
if ($env{'course.'.$env{'request.course.id'}.'.allow_discussion_post_editing'} =~ m/yes/i) { |
if (&editing_allowed()) { |
if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) { |
if (($env{'user.domain'} eq $contrib{$idx.':senderdomain'}) && ($env{'user.name'} eq $contrib{$idx.':sendername'})) { |
$sender.=' <a href="/adm/feedback?editdisc='. |
$sender.=' <a href="/adm/feedback?editdisc='. |
$escsymb.':::'.$idx; |
$escsymb.':::'.$idx; |
Line 2478 sub feedback_available {
|
Line 2478 sub feedback_available {
|
} |
} |
|
|
sub send_msg { |
sub send_msg { |
my ($feedurl,$email,$citations,$attachmenturl,%to)=@_; |
my ($title,$feedurl,$email,$citations,$attachmenturl,%to)=@_; |
my $status=''; |
my $status=''; |
my $sendsomething=0; |
my $sendsomething=0; |
|
if ($title=~/^Error/) { $title=&mt('Feedback').': '.$title; } |
|
unless ($title=~/\w/) { $title=&mt('Feedback'); } |
foreach (keys %to) { |
foreach (keys %to) { |
if ($_) { |
if ($_) { |
my $declutter=&Apache::lonnet::declutter($feedurl); |
my $declutter=&Apache::lonnet::declutter($feedurl); |
unless (&Apache::lonmsg::user_normal_msg(split(/\:/,$_), |
unless (&Apache::lonmsg::user_normal_msg(split(/\:/,$_), |
'Feedback ['.$declutter.']',$email,$citations,$feedurl, |
$title.' ['.$declutter.']',$email,$citations,$feedurl, |
$attachmenturl)=~/ok/) { |
$attachmenturl)=~/ok/) { |
$status.='<br />'.&mt('Error sending message to').' '.$_.'<br />'; |
$status.='<br />'.&mt('Error sending message to').' '.$_.'<br />'; |
} else { |
} else { |
Line 2992 sub handler {
|
Line 2994 sub handler {
|
|
|
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','cmd','symb','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export']); |
['hide','unhide','deldisc','postdata','preview','replydisc','editdisc','cmd','symb','onlyunread','allposts','onlyunmark','previous','markread','markonread','markondisp','toggoff','toggon','modifydisp','changes','navtime','navmaps','navurl','sortposts','applysort','rolefilter','statusfilter','sectionpick','posterlist','userpick','attach','origpage','currnewattach','deloldattach','keepold','allversions','export']); |
|
if ($env{'form.editdisc'}) { |
|
if (!(&editing_allowed())) { |
|
my $symb=(split(/\:\:\:/,$env{'form.editdisc'}))[0]; |
|
my ($map,$id,$url)=&Apache::lonnet::decode_symb($symb); |
|
my $feedurl=&Apache::lonnet::clutter($url); |
|
&redirect_back($r,$feedurl,&mt('Editing not permitted').'<br />', '0','0','','',$env{'form.previous'},'','','',); |
|
return OK; |
|
} |
|
} |
if ($env{'form.discsymb'}) { |
if ($env{'form.discsymb'}) { |
my ($symb,$feedurl) = &get_feedurl_and_clean_symb($env{'form.discsymb'}); |
my ($symb,$feedurl) = &get_feedurl_and_clean_symb($env{'form.discsymb'}); |
my $readkey = $symb.'_read'; |
my $readkey = $symb.'_read'; |
Line 3187 ENDREDIR
|
Line 3197 ENDREDIR
|
my ($symb,$idx)=split(/\:\:\:/,$entry); |
my ($symb,$idx)=split(/\:\:\:/,$entry); |
($symb,my $feedurl)=&get_feedurl_and_clean_symb($symb); |
($symb,my $feedurl)=&get_feedurl_and_clean_symb($symb); |
|
|
|
my $crs='/'.$env{'request.course.id'}; |
|
if ($env{'request.course.sec'}) { |
|
$crs.='_'.$env{'request.course.sec'}; |
|
} |
|
$crs=~s/\_/\//g; |
|
my $seeid=&Apache::lonnet::allowed('rin',$crs); |
|
|
|
if ($env{'form.hide'} && !$seeid && !(&editing_allowed())) { |
|
&redirect_back($r,$feedurl,&mt('Deletion not permitted').'<br />', '0','0','','',$env{'form.previous'},'','','',); |
|
return OK; |
|
} |
|
|
my %contrib=&Apache::lonnet::restore($symb,$env{'request.course.id'}, |
my %contrib=&Apache::lonnet::restore($symb,$env{'request.course.id'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.domain'}, |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
$env{'course.'.$env{'request.course.id'}.'.num'}); |
Line 3194 ENDREDIR
|
Line 3216 ENDREDIR
|
my $currenthidden=$contrib{'hidden'}; |
my $currenthidden=$contrib{'hidden'}; |
my $currentstudenthidden=$contrib{'studenthidden'}; |
my $currentstudenthidden=$contrib{'studenthidden'}; |
|
|
my $crs='/'.$env{'request.course.id'}; |
|
if ($env{'request.course.sec'}) { |
|
$crs.='_'.$env{'request.course.sec'}; |
|
} |
|
$crs=~s/\_/\//g; |
|
my $seeid=&Apache::lonnet::allowed('rin',$crs); |
|
|
|
if ($env{'form.hide'}) { |
if ($env{'form.hide'}) { |
$currenthidden.='.'.$idx.'.'; |
$currenthidden.='.'.$idx.'.'; |
unless ($seeid) { |
unless ($seeid) { |
Line 3411 ENDREDIR
|
Line 3426 ENDREDIR
|
my ($typestyle,%to) = &decide_receiver($feedurl); |
my ($typestyle,%to) = &decide_receiver($feedurl); |
|
|
# Actually send mail |
# Actually send mail |
my ($status,$numsent)=&send_msg($feedurl,$email,$citations, |
my ($status,$numsent)=&send_msg(&clear_out_html($env{'form.subject'}),$feedurl,$email,$citations, |
$attachmenturl,%to); |
$attachmenturl,%to); |
|
|
# Discussion? Store that. |
# Discussion? Store that. |
Line 3477 sub get_feedurl_and_clean_symb {
|
Line 3492 sub get_feedurl_and_clean_symb {
|
my $feedurl = &get_feedurl($symb); |
my $feedurl = &get_feedurl($symb); |
return ($symb,$feedurl); |
return ($symb,$feedurl); |
} |
} |
|
|
|
sub editing_allowed { |
|
my $can_edit = 0; |
|
my $cid = $env{'request.course.id'}; |
|
my $role = (split(/\./,$env{'request.role'}))[0]; |
|
my $section = $env{'request.course.sec'}; |
|
my $allow_editing_config = $env{'course.'.$env{'request.course.id'}. |
|
'.allow_discussion_post_editing'}; |
|
if ($allow_editing_config =~ m/^\s*yes\s*$/i) { |
|
$can_edit = 1; |
|
} else { |
|
my @editor_roles = split(/,/,$allow_editing_config); |
|
if (@editor_roles > 0) { |
|
foreach my $editor (@editor_roles) { |
|
my ($editor_role,$editor_sec) = split(/:/,$editor); |
|
if ($editor_role eq $role) { |
|
if (defined($editor_sec)) { |
|
if (defined($section)) { |
|
if ($editor_sec eq $section) { |
|
$can_edit = 1; |
|
last; |
|
} |
|
} |
|
} else { |
|
$can_edit = 1; |
|
last; |
|
} |
|
} |
|
} |
|
} |
|
} |
|
return $can_edit; |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |