version 1.39, 2008/01/01 20:27:29
|
version 1.46, 2008/01/06 05:32:43
|
Line 1307 sub print_userlist {
|
Line 1307 sub print_userlist {
|
} |
} |
$r->rflush(); |
$r->rflush(); |
if ($context eq 'course') { |
if ($context eq 'course') { |
my $classlist = &Apache::loncoursedata::get_classlist(); |
if (($env{'form.showrole'} eq 'st') || ($env{'form.showrole'} eq 'Any')) { |
my $secidx = &Apache::loncoursedata::CL_SECTION(); |
my $classlist = &Apache::loncoursedata::get_classlist(); |
my $viewablesec = &viewable_section($permission); |
%userlist = %{$classlist}; |
foreach my $student (keys(%{$classlist})) { |
} |
my $section = $classlist->{$student}[$secidx]; |
if ($env{'form.showrole'} ne 'st') { |
if ($viewablesec ne '') { |
my $showroles; |
if ($section ne $viewablesec) { |
if ($env{'form.showrole'} ne 'Any') { |
next; |
$showroles = [$env{'form.showrole'}]; |
} else { |
|
$userlist{$student} = $classlist->{$student}; |
|
} |
|
} else { |
} else { |
$userlist{$student} = $classlist->{$student}; |
$showroles = undef; |
} |
} |
|
my $withsec = 1; |
|
my $hidepriv = 1; |
|
my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef, |
|
\@statuses,$showroles,undef,$withsec,$hidepriv); |
|
&gather_userinfo($context,$format,\%userlist,$indexhash,\%userinfo, |
|
\%advrolehash,$permission); |
} |
} |
my $showroles; |
|
if ($env{'form.showrole'} ne 'Any') { |
|
$showroles = [$env{'form.showrole'}]; |
|
} else { |
|
$showroles = undef; |
|
} |
|
my $withsec = 1; |
|
my $hidepriv = 1; |
|
my %advrolehash = &Apache::lonnet::get_my_roles($cnum,$cdom,undef, |
|
\@statuses,$showroles,undef,$withsec,$hidepriv); |
|
&gather_userinfo($context,$format,\%userlist,$indexhash,\%userinfo, |
|
\%advrolehash,$permission); |
|
} else { |
} else { |
my (%cstr_roles,%dom_roles); |
my (%cstr_roles,%dom_roles); |
if ($context eq 'author') { |
if ($context eq 'author') { |
Line 1799 sub make_keylist_array {
|
Line 1790 sub make_keylist_array {
|
$index->{'email'} = &Apache::loncoursedata::CL_PERMANENTEMAIL(); |
$index->{'email'} = &Apache::loncoursedata::CL_PERMANENTEMAIL(); |
$index->{'role'} = &Apache::loncoursedata::CL_ROLE(); |
$index->{'role'} = &Apache::loncoursedata::CL_ROLE(); |
$index->{'extent'} = &Apache::loncoursedata::CL_EXTENT(); |
$index->{'extent'} = &Apache::loncoursedata::CL_EXTENT(); |
|
$index->{'photo'} = &Apache::loncoursedata::CL_PHOTO(); |
foreach my $key (keys(%{$index})) { |
foreach my $key (keys(%{$index})) { |
$keylist->[$index->{$key}] = $key; |
$keylist->[$index->{$key}] = $key; |
} |
} |
Line 1907 END
|
Line 1899 END
|
my $alert = &mt("You must select at least one user by checking a user's 'Select' checkbox"); |
my $alert = &mt("You must select at least one user by checking a user's 'Select' checkbox"); |
my $singconfirm = &mt(' for a single user?'); |
my $singconfirm = &mt(' for a single user?'); |
my $multconfirm = &mt(' for multiple users?'); |
my $multconfirm = &mt(' for multiple users?'); |
my $date_sec_selector = &date_section_javascript($context,$setting,$statusmode); |
my $date_sec_selector = &date_section_javascript($context,$setting,$statusmode); |
|
my %lt = &Apache::lonlocal::texthash( |
|
acwi => 'Access will be set to start immediately', |
|
asyo => 'as you did not select an end date in the pop-up window', |
|
accw => 'Access will be set to continue indefinitely', |
|
asyd => 'as you did not select an end date in the pop-up window', |
|
sewi => "Sections will be switched to 'No section'", |
|
ayes => "as you either selected the 'No section' option", |
|
oryo => 'or you did not select a section in the pop-up window', |
|
arol => 'A role with no section will be added', |
|
swbs => 'Sections will be switched to:', |
|
rwba => 'Roles will be added for section(s):', |
|
); |
$r->print(<<END); |
$r->print(<<END); |
|
|
<script type="text/javascript" language="Javascript"> |
<script type="text/javascript" language="Javascript"> |
Line 1933 function verify_action (field) {
|
Line 1937 function verify_action (field) {
|
} |
} |
else { |
else { |
var message = document.studentform.bulkaction[document.studentform.bulkaction.selectedIndex].text; |
var message = document.studentform.bulkaction[document.studentform.bulkaction.selectedIndex].text; |
|
var choice = document.studentform.bulkaction[document.studentform.bulkaction.selectedIndex].value; |
if (numchecked == 1) { |
if (numchecked == 1) { |
message += singconf; |
message += singconf; |
} |
} |
else { |
else { |
message += multconf; |
message += multconf; |
} |
} |
|
if (choice == 'chgdates' || choice == 'reenable' || choice == 'activate') { |
|
var datemsg = ''; |
|
if ((document.studentform.startdate_month.value == '') && |
|
(document.studentform.startdate_day.value == '') && |
|
(document.studentform.startdate_year.value == '')) { |
|
datemsg = "\\n$lt{'acwi'},\\n$lt{'asyo'}.\\n"; |
|
} |
|
if ((document.studentform.enddate_month.value == '') && |
|
(document.studentform.enddate_day.value == '') && |
|
(document.studentform.enddate_year.value == '')) { |
|
datemsg += "\\n$lt{'accw'},\\n$lt{'asyd'}.\\n"; |
|
} |
|
if (datemsg != '') { |
|
message += "\\n"+datemsg; |
|
} |
|
} |
|
if (choice == 'chgsec') { |
|
var rolefilter = document.studentform.showrole.options[document.studentform.showrole.selectedIndex].value; |
|
var retained = document.studentform.retainsec.value; |
|
var secshow = document.studentform.newsecs.value; |
|
if (secshow == '') { |
|
if (rolefilter == 'st' || retained == 0 || retained == "") { |
|
message += "\\n\\n$lt{'sewi'},\\n$lt{'ayes'},\\n$lt{'oryo'}.\\n"; |
|
} else { |
|
message += "\\n\\n$lt{'arol'}\\n$lt{'ayes'},\\n$lt{'oryo'}.\\n"; |
|
} |
|
} else { |
|
if (rolefilter == 'st' || retained == 0 || retained == "") { |
|
message += "\\n\\n$lt{'swbs'} "+secshow+".\\n"; |
|
} else { |
|
message += "\\n\\n$lt{'rwba'} "+secshow+".\\n"; |
|
} |
|
} |
|
} |
if (confirm(message)) { |
if (confirm(message)) { |
document.studentform.phase.value = 'bulkchange'; |
document.studentform.phase.value = 'bulkchange'; |
document.studentform.submit(); |
document.studentform.submit(); |
Line 1989 END
|
Line 2028 END
|
'clicker' => "clicker id", |
'clicker' => "clicker id", |
'photo' => "photo", |
'photo' => "photo", |
'extent' => "extent", |
'extent' => "extent", |
|
'go' => "go", |
'pr' => "Proceed", |
'pr' => "Proceed", |
'ca' => "check all", |
'ca' => "check all", |
'ua' => "uncheck all", |
'ua' => "uncheck all", |
Line 2071 END
|
Line 2111 END
|
$output .= &mt("Click on a username to view the user's personal page.").'<br />'; |
$output .= &mt("Click on a username to view the user's personal page.").'<br />'; |
} |
} |
if ($actionselect) { |
if ($actionselect) { |
$output .= <<"END"; |
$output .= <<"END"; |
$lt{'ac'}: $actionselect <input type="button" value="$lt{'pr'}" onclick="javascript:verify_action(document.studentform.actionlist)" /></p> |
$lt{'ac'}: $actionselect <input type="button" value="$lt{'go'}" onclick="javascript:opendatebrowser(this.form,'studentform','go')" /></p> |
<p><input type="button" value="$lt{'ca'}" onclick="javascript:checkAll(document.studentform.actionlist)" /> |
<p><input type="button" value="$lt{'ca'}" onclick="javascript:checkAll(document.studentform.actionlist)" /> |
<input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.studentform.actionlist)" /> |
<input type="button" value="$lt{'ua'}" onclick="javascript:uncheckAll(document.studentform.actionlist)" /><br /><br /><input type="button" value="$lt{'pr'}" onclick="javascript:verify_action(document.studentform.actionlist)" /> |
END |
END |
my @allroles; |
my @allroles; |
if ($env{'form.showrole'} eq 'Any') { |
if ($env{'form.showrole'} eq 'Any') { |
Line 2224 END
|
Line 2264 END
|
# Get groups, role, permanent e-mail so we can sort on them if |
# Get groups, role, permanent e-mail so we can sort on them if |
# necessary. |
# necessary. |
foreach my $user (keys(%{$userlist})) { |
foreach my $user (keys(%{$userlist})) { |
|
if ($user eq '' ) { |
|
delete($userlist->{$user}); |
|
next; |
|
} |
if ($context eq 'domain' && $user eq $env{'request.role.domain'}.'-domainconfig:'.$env{'request.role.domain'}) { |
if ($context eq 'domain' && $user eq $env{'request.role.domain'}.'-domainconfig:'.$env{'request.role.domain'}) { |
delete($userlist->{$user}); |
delete($userlist->{$user}); |
next; |
next; |
Line 2269 END
|
Line 2313 END
|
} |
} |
if ($mode ne 'autoenroll') { |
if ($mode ne 'autoenroll') { |
my $section = $userlist->{$user}->[$index{'section'}]; |
my $section = $userlist->{$user}->[$index{'section'}]; |
|
if (($env{'request.course.sec'} ne '') && |
|
($section ne $env{'request.course.sec'})) { |
|
if ($role eq 'st') { |
|
delete($userlist->{$user}); |
|
next; |
|
} |
|
} |
if ($secfilter eq 'none') { |
if ($secfilter eq 'none') { |
if ($section ne '') { |
if ($section ne '') { |
delete($userlist->{$user}); |
delete($userlist->{$user}); |
Line 2291 END
|
Line 2342 END
|
next; |
next; |
} |
} |
} |
} |
|
if ($env{'course.'.$env{'request.course.id'}.'.internal.showphoto'}) { |
|
if (($displayphotos eq 'on') && ($role eq 'st')) { |
|
$userlist->{$user}->[$index{'photo'}] = |
|
&Apache::lonnet::retrievestudentphoto($udom,$uname, |
|
'gif','thumbnail'); |
|
} |
|
} |
} |
} |
} |
} |
my %emails = &Apache::loncommon::getemails($uname,$udom); |
my %emails = &Apache::loncommon::getemails($uname,$udom); |
Line 2422 END
|
Line 2480 END
|
$r->print(' <td> </td> '); |
$r->print(' <td> </td> '); |
} |
} |
if ($env{'course.'.$env{'request.course.id'}.'.internal.showphoto'}) { |
if ($env{'course.'.$env{'request.course.id'}.'.internal.showphoto'}) { |
if ($displayphotos eq 'on' && $sdata->[$index{'role'}] eq 'st') { |
if ($displayphotos eq 'on' && $role eq 'st' && $in{'photo'} ne '') { |
my $imgurl = |
$r->print(' <td align="right"><a href="javascript:photowindow('."'".&Apache::lonnet::studentphoto($in{'domain'},$in{'username'},'jpg')."'".')"><img src="'.$in{'photo'}.'" border="1"></a></td>'); |
&Apache::lonnet::retrievestudentphoto($in{'domain'},$in{'username'}, |
|
'gif','thumbnail'); |
|
$r->print(' <td align="right"><a href="javascript:photowindow('."'".&Apache::lonnet::studentphoto($in{'domain'},$in{'username'},'jpg')."'".')"><img src="'.$imgurl.'" border="1"></a></td>'); |
|
} else { |
} else { |
$r->print(' <td> </td> '); |
$r->print(' <td> </td> '); |
} |
} |
Line 2578 sub select_actions {
|
Line 2633 sub select_actions {
|
} |
} |
} |
} |
if ($options) { |
if ($options) { |
$output = '<select name="bulkaction" onchange="javascript:opendatebrowser(this.form,'."'studentform'".')" />'."\n". |
$output = '<select name="bulkaction" onchange="javascript:opendatebrowser(this.form,'."'studentform','change'".')" />'."\n". |
'<option value="" selected="selected">'. |
'<option value="" selected="selected">'. |
&mt('Please select').'</option>'."\n".$options."\n".'</select>'; |
&mt('Please select').'</option>'."\n".$options."\n".'</select>'; |
if ($choices{'dates'}) { |
if ($choices{'dates'}) { |
Line 2615 sub date_section_javascript {
|
Line 2670 sub date_section_javascript {
|
} else { |
} else { |
$title = &mt('Date selector'); |
$title = &mt('Date selector'); |
} |
} |
|
my %nopopup = &Apache::lonlocal::texthash ( |
|
revoke => "Check the boxes for any users for whom roles are to be revoked, and click 'Proceed'", |
|
delete => "Check the boxes for any users for whom roles are to be deleted, and click 'Proceed'", |
|
none => "Choose an action to take for selected users", |
|
); |
my $output = ' |
my $output = ' |
<script type="text/javascript"> |
<script type="text/javascript"> |
var stdeditbrowser;'."\n"; |
var stdeditbrowser;'."\n"; |
$output .= <<"ENDONE"; |
$output .= <<"ENDONE"; |
function opendatebrowser(callingform,formname) { |
function opendatebrowser(callingform,formname,calledby) { |
var bulkaction = callingform.bulkaction.options[callingform.bulkaction.selectedIndex].value; |
var bulkaction = callingform.bulkaction.options[callingform.bulkaction.selectedIndex].value; |
if (bulkaction == 'revoke' || bulkaction == 'delete' || bulkaction == '') { |
if (bulkaction == 'revoke' || bulkaction == 'delete' || bulkaction == '') { |
|
if (calledby == 'go') { |
|
if (bulkaction == 'revoke') { |
|
alert("$nopopup{'revoke'}"); |
|
} |
|
if (bulkaction == 'delete') { |
|
alert("$nopopup{'delete'}"); |
|
} |
|
if (bulkaction == '') { |
|
alert("$nopopup{'none'}"); |
|
} |
|
} |
return; |
return; |
} |
} |
var url = '/adm/createuser?'; |
var url = '/adm/createuser?'; |
Line 2665 function saveselections(formname) {
|
Line 2736 function saveselections(formname) {
|
END |
END |
if ($env{'form.bulkaction'} eq 'chgsec') { |
if ($env{'form.bulkaction'} eq 'chgsec') { |
$output .= <<"END"; |
$output .= <<"END"; |
opener.document.$callingform.retainsec.value = formname.retainsec.value; |
if (formname.retainsec.length > 1) { |
|
for (var i=0; i<formname.retainsec.length; i++) { |
|
if (formname.retainsec[i].checked == true) { |
|
opener.document.$callingform.retainsec.value = formname.retainsec[i].value; |
|
} |
|
} |
|
} else { |
|
opener.document.$callingform.retainsec.value = formname.retainsec.value; |
|
} |
setSections(formname); |
setSections(formname); |
if (seccheck == 'ok') { |
if (seccheck == 'ok') { |
opener.document.$callingform.newsecs.value = formname.sections.value; |
opener.document.$callingform.newsecs.value = formname.sections.value; |
Line 3327 sub upfile_drop_add {
|
Line 3406 sub upfile_drop_add {
|
); |
); |
my $flushc=0; |
my $flushc=0; |
my %student=(); |
my %student=(); |
my (%curr_groups,@sections,@cleansec,@secs,$defaultwarn,$groupwarn); |
my (%curr_groups,@sections,@cleansec,$defaultwarn,$groupwarn); |
my %userchg; |
my %userchg; |
if ($context eq 'course' || $setting eq 'course') { |
if ($context eq 'course' || $setting eq 'course') { |
if ($context eq 'course') { |
if ($context eq 'course') { |
Line 3366 sub upfile_drop_add {
|
Line 3445 sub upfile_drop_add {
|
} |
} |
my (%curr_rules,%got_rules,%alerts); |
my (%curr_rules,%got_rules,%alerts); |
my %customroles = &my_custom_roles(); |
my %customroles = &my_custom_roles(); |
my ($custom_ok,@permitted_roles) = |
my @permitted_roles = &roles_on_upload($context,$setting,%customroles); |
&roles_on_upload($context,%customroles); |
|
# Get new users list |
# Get new users list |
foreach my $line (@userdata) { |
foreach my $line (@userdata) { |
|
my @secs; |
my %entries=&Apache::loncommon::record_sep($line); |
my %entries=&Apache::loncommon::record_sep($line); |
# Determine user name |
# Determine user name |
unless (($entries{$fields{'username'}} eq '') || |
unless (($entries{$fields{'username'}} eq '') || |
Line 3403 sub upfile_drop_add {
|
Line 3482 sub upfile_drop_add {
|
my $username = $entries{$fields{'username'}}; |
my $username = $entries{$fields{'username'}}; |
if (defined($fields{'sec'})) { |
if (defined($fields{'sec'})) { |
if (defined($entries{$fields{'sec'}})) { |
if (defined($entries{$fields{'sec'}})) { |
|
$entries{$fields{'sec'}} =~ s/\W//g; |
my $item = $entries{$fields{'sec'}}; |
my $item = $entries{$fields{'sec'}}; |
$item =~ s/(\s+$|^\s+)//g; |
|
if ($item eq "none" || $item eq 'all') { |
if ($item eq "none" || $item eq 'all') { |
$r->print('<br />'.&mt('<b>[_1]</b>: Unable to enroll user [_2] [_3] [_4] [_5] in a section named "[_6]" - this is a reserved word.',$username,$fname,$mname,$lname,$gen,$item)); |
$r->print('<br />'.&mt('<b>[_1]</b>: Unable to enroll user [_2] [_3] [_4] [_5] in a section named "[_6]" - this is a reserved word.',$username,$fname,$mname,$lname,$gen,$item)); |
next; |
next; |
Line 3463 sub upfile_drop_add {
|
Line 3542 sub upfile_drop_add {
|
my $role = ''; |
my $role = ''; |
if (defined($fields{'role'})) { |
if (defined($fields{'role'})) { |
if ($entries{$fields{'role'}}) { |
if ($entries{$fields{'role'}}) { |
if (grep(/^\Q$entries{$fields{'role'}}\E$/,@permitted_roles)) { |
$entries{$fields{'role'}} =~ s/(\s+$|^\s+)//g; |
$role=$entries{$fields{'role'}}; |
if ($entries{$fields{'role'}} ne '') { |
$role =~ s/(\s+$|^\s+)//g; |
if (grep(/^\Q$entries{$fields{'role'}}\E$/,@permitted_roles)) { |
} |
$role = $entries{$fields{'role'}}; |
if ($custom_ok) { |
|
if ($customroles{$role}) { |
|
$role = 'cr_'.$env{'user.domain'}.'_'.$env{'user.name'}.'_'.$entries{$fields{'role'}}; |
|
} |
} |
} |
} |
if ($role eq '') { |
if ($role eq '') { |
Line 3564 sub upfile_drop_add {
|
Line 3640 sub upfile_drop_add {
|
my $multiple = 0; |
my $multiple = 0; |
my ($userresult,$authresult,$roleresult,$idresult); |
my ($userresult,$authresult,$roleresult,$idresult); |
my (%userres,%authres,%roleres,%idres); |
my (%userres,%authres,%roleres,%idres); |
|
my $singlesec = ''; |
if ($role eq 'st') { |
if ($role eq 'st') { |
my $sec; |
my $sec; |
if ($cid) { |
if (@secs > 0) { |
if (@secs > 0) { |
$sec = $secs[0]; |
$sec = $secs[0]; |
|
} |
|
&modifystudent($domain,$username,$cid,$sec, |
|
$desiredhost); |
|
$roleresult = |
|
&Apache::lonnet::modifystudent |
|
($domain,$username,$id,$amode,$password, |
|
$fname,$mname,$lname,$gen,$sec,$enddate, |
|
$startdate,$env{'form.forceid'}, |
|
$desiredhost,$email,'manual','',$cid); |
|
$userresult = $roleresult; |
|
} |
} |
|
&modifystudent($domain,$username,$cid,$sec, |
|
$desiredhost); |
|
$roleresult = |
|
&Apache::lonnet::modifystudent |
|
($domain,$username,$id,$amode,$password, |
|
$fname,$mname,$lname,$gen,$sec,$enddate, |
|
$startdate,$env{'form.forceid'}, |
|
$desiredhost,$email,'manual','',$cid); |
|
$userresult = $roleresult; |
} else { |
} else { |
if (($context eq 'course') || |
if ($role ne '') { |
(grep(/^\Q$role\E$/,@courseroles))) { |
if ($context eq 'course' || $setting eq 'course') { |
if (!$cid) { |
if ($customroles{$role}) { |
next; |
$role = 'cr_'.$env{'user.domain'}.'_'. |
} |
$env{'user.name'}.'_'.$role; |
} |
} |
my $singlesec; |
if ($role ne 'cc') { |
if ((grep(/^\Q$role\E$/,@courseroles)) && ($role ne 'cc')) { |
if (@secs > 1) { |
if (@secs > 1) { |
$multiple = 1; |
$multiple = 1; |
foreach my $sec (@secs) { |
foreach my $sec (@secs) { |
($userres{$sec},$authres{$sec},$roleres{$sec},$idres{$sec}) = |
($userres{$sec},$authres{$sec},$roleres{$sec},$idres{$sec}) = |
&modifyuserrole($context,$setting, |
&modifyuserrole($context,$setting, |
$changeauth,$cid,$domain,$username, |
$changeauth,$cid,$domain,$username, |
$id,$amode,$password,$fname, |
$id,$amode,$password,$fname, |
$mname,$lname,$gen,$sec, |
$mname,$lname,$gen,$sec, |
$env{'form.forceid'},$desiredhost, |
$env{'form.forceid'},$desiredhost, |
$email,$role,$enddate, |
$email,$role,$enddate,$startdate,$checkid); |
$startdate,$checkid); |
|
} |
|
} elsif (@secs > 0) { |
|
$singlesec = $secs[0]; |
|
} |
} |
} |
} elsif (@secs > 0) { |
|
$singlesec = $secs[0]; |
|
} |
} |
} |
} |
if (!$multiple) { |
if (!$multiple) { |
($userresult,$authresult,$roleresult,$idresult) = |
($userresult,$authresult,$roleresult,$idresult) = |
&modifyuserrole($context,$setting, |
&modifyuserrole($context,$setting, |
$changeauth,$cid,$domain,$username, |
$changeauth,$cid,$domain,$username, |
$id,$amode,$password,$fname, |
$id,$amode,$password,$fname, |
$mname,$lname,$gen,$singlesec, |
$mname,$lname,$gen,$singlesec, |
$env{'form.forceid'},$desiredhost, |
$env{'form.forceid'},$desiredhost, |
$email,$role,$enddate,$startdate,$checkid); |
$email,$role,$enddate,$startdate,$checkid); |
} |
} |
} |
} |
if ($multiple) { |
if ($multiple) { |
foreach my $sec (sort(keys(%userres))) { |
foreach my $sec (sort(keys(%userres))) { |
$flushc = |
$flushc = |
&user_change_result($r,$userres{$sec},$authres{$sec}, |
&user_change_result($r,$userres{$sec},$authres{$sec}, |
$roleres{$sec},$idres{$sec},\%counts,$flushc, |
$roleres{$sec},$idres{$sec},\%counts,$flushc, |
$username,\%userchg); |
$username,\%userchg); |
Line 3939 sub update_user_list {
|
Line 4016 sub update_user_list {
|
if (@newsecs == 0) { |
if (@newsecs == 0) { |
$result = &mt('No change in section assignment (none)'); |
$result = &mt('No change in section assignment (none)'); |
$nochg = 1; |
$nochg = 1; |
} |
} else { |
|
$revresult = |
|
&Apache::lonnet::revokerole($udom,$uname, |
|
$scope,$role); |
|
} |
} else { |
} else { |
if (@newsecs > 0) { |
if (@newsecs > 0) { |
if (grep(/^\Q$sec\E$/,@newsecs)) { |
if (grep(/^\Q$sec\E$/,@newsecs)) { |
Line 4480 sub authorpriv {
|
Line 4561 sub authorpriv {
|
} |
} |
|
|
sub roles_on_upload { |
sub roles_on_upload { |
my ($context,%customroles) = @_; |
my ($context,$setting,%customroles) = @_; |
my (@possible_roles,@permitted_roles); |
my (@possible_roles,@permitted_roles); |
if ($context eq 'domain') { |
@possible_roles = &curr_role_permissions($context,$setting,1); |
@possible_roles = &curr_role_permissions($context,undef,1); |
|
push(@possible_roles,&curr_role_permissions($context,'course',1)); |
|
} else { |
|
@possible_roles = &curr_role_permissions($context,undef,1); |
|
} |
|
my $custom_ok = 0; |
|
foreach my $role (@possible_roles) { |
foreach my $role (@possible_roles) { |
if ($role eq 'cr') { |
if ($role eq 'cr') { |
$custom_ok = 1; |
|
push(@permitted_roles,keys(%customroles)); |
push(@permitted_roles,keys(%customroles)); |
} else { |
} else { |
push(@permitted_roles,$role); |
push(@permitted_roles,$role); |
} |
} |
} |
} |
return ($custom_ok,@permitted_roles); |
return @permitted_roles; |
} |
} |
|
|
sub get_course_identity { |
sub get_course_identity { |