version 1.56, 2003/06/20 14:37:26
|
version 1.60, 2003/07/18 13:45:14
|
Line 83 BEGIN {
|
Line 83 BEGIN {
|
} |
} |
|
|
|
|
|
# ======================================================= Existing Custom Roles |
|
|
|
sub my_custom_roles { |
|
my %returnhash=(); |
|
my %rolehash=&Apache::lonnet::dump('roles'); |
|
foreach (keys %rolehash) { |
|
if ($_=~/^rolesdef\_(\w+)$/) { |
|
$returnhash{$_}=$_; |
|
} |
|
} |
|
return %returnhash; |
|
} |
|
|
# ==================================================== Figure out author access |
# ==================================================== Figure out author access |
|
|
Line 107 sub print_username_entry_form {
|
Line 119 sub print_username_entry_form {
|
my $selscript=&Apache::loncommon::studentbrowser_javascript(); |
my $selscript=&Apache::loncommon::studentbrowser_javascript(); |
my $sellink=&Apache::loncommon::selectstudent_link |
my $sellink=&Apache::loncommon::selectstudent_link |
('crtuser','ccuname','ccdomain'); |
('crtuser','ccuname','ccdomain'); |
|
my %existingroles=&my_custom_roles(); |
|
my $choice=&Apache::loncommon::select_form('make new role','rolename', |
|
('make new role' => 'Generate new role ...',%existingroles)); |
$r->print(<<"ENDDOCUMENT"); |
$r->print(<<"ENDDOCUMENT"); |
<html> |
<html> |
<head> |
<head> |
Line 116 $selscript
|
Line 131 $selscript
|
$bodytag |
$bodytag |
<form action="/adm/createuser" method="post" name="crtuser"> |
<form action="/adm/createuser" method="post" name="crtuser"> |
<input type="hidden" name="phase" value="get_user_info"> |
<input type="hidden" name="phase" value="get_user_info"> |
<p> |
<h2>Set Individual User Roles</h2> |
<table> |
<table> |
<tr><td>Username:</td><td><input type="text" size="15" name="ccuname"> |
<tr><td>Username:</td><td><input type="text" size="15" name="ccuname"> |
</td><td rowspan="2">$sellink</td></tr><tr><td> |
</td><td rowspan="2">$sellink</td></tr><tr><td> |
Domain:</td><td>$domform</td></tr> |
Domain:</td><td>$domform</td></tr> |
</table> |
</table> |
</p> |
<input name="userrole" type="submit" value="User Roles" /> |
<input type="submit" value="Continue"> |
|
</form> |
</form> |
|
<form action="/adm/createuser" method="post" name="docustom"> |
|
<input type="hidden" name="phase" value="selected_custom_edit"> |
|
<h2>Edit Custom Role Privileges</h2> |
|
Name of Role: $choice <input type="text" size="15" name="newrolename" /><br /> |
|
<input name="customeditor" type="submit" value="Custom Role Editor" /> |
</body> |
</body> |
</html> |
</html> |
ENDDOCUMENT |
ENDDOCUMENT |
Line 136 sub print_user_modification_page {
|
Line 155 sub print_user_modification_page {
|
my $ccuname=$ENV{'form.ccuname'}; |
my $ccuname=$ENV{'form.ccuname'}; |
my $ccdomain=$ENV{'form.ccdomain'}; |
my $ccdomain=$ENV{'form.ccdomain'}; |
|
|
|
$ccuname=~s/\W//gs; |
|
$ccdomain=~s/\W//gs; |
|
|
|
unless (($ccuname) && ($ccdomain)) { |
|
&print_username_entry_form($r); |
|
return; |
|
} |
|
|
my $defdom=$ENV{'request.role.domain'}; |
my $defdom=$ENV{'request.role.domain'}; |
|
|
my ($krbdef,$krbdefdom) = |
my ($krbdef,$krbdefdom) = |
Line 237 ENDNEWUSER
|
Line 264 ENDNEWUSER
|
$dochead |
$dochead |
<h1>Change User Privileges</h1> |
<h1>Change User Privileges</h1> |
$forminfo |
$forminfo |
<h2>User "$ccuname" in domain $ccdomain </h2> |
<h2>User "$ccuname" in domain "$ccdomain"</h2> |
ENDCHANGEUSER |
ENDCHANGEUSER |
# Get the users information |
# Get the users information |
my %userenv = &Apache::lonnet::get('environment', |
my %userenv = &Apache::lonnet::get('environment', |
Line 286 END
|
Line 313 END
|
my $allowed=0; |
my $allowed=0; |
my $delallowed=0; |
my $delallowed=0; |
if ($area =~ /^\/(\w+)\/(\d\w+)/ ) { |
if ($area =~ /^\/(\w+)\/(\d\w+)/ ) { |
|
my ($coursedom,$coursedir) = ($1,$2); |
|
# $1.'_'.$2 is the course id (eg. 103_12345abcef103l3). |
my %coursedata= |
my %coursedata= |
&Apache::lonnet::coursedescription($1.'_'.$2); |
&Apache::lonnet::coursedescription($1.'_'.$2); |
my $carea; |
my $carea; |
if (defined($coursedata{'description'})) { |
if (defined($coursedata{'description'})) { |
$carea='Course: '.$coursedata{'description'}. |
$carea='Course: '.$coursedata{'description'}. |
'<br />Domain: '.$1; |
'<br />Domain: '.$coursedom.(' 'x8). |
|
&Apache::loncommon::syllabuswrapper('Syllabus',$coursedir,$coursedom); |
} else { |
} else { |
$carea='Unavailable course: '.$area; |
$carea='Unavailable course: '.$area; |
} |
} |
Line 824 END
|
Line 854 END
|
$r->print('</body></html>'); |
$r->print('</body></html>'); |
} |
} |
|
|
|
# ========================================================== Custom Role Editor |
|
|
|
sub custom_role_editor { |
|
my $r=shift; |
|
my $rolename=$ENV{'form.rolename'}; |
|
|
|
if ($rolename eq 'make new role') { |
|
$rolename=$ENV{'form.newrolename'}; |
|
} |
|
|
|
$rolename=~s/\W//gs; |
|
|
|
unless ($rolename) { |
|
&print_username_entry_form($r); |
|
return; |
|
} |
|
|
|
$r->print(&Apache::loncommon::bodytag( |
|
'Create Users, Change User Privileges').'<h2>'); |
|
my ($rdummy,$roledef)= |
|
&Apache::lonnet::get('roles',["rolesdef_$rolename"]); |
|
# ------------------------------------------------------- Does this role exist? |
|
if (($rdummy ne 'con_lost') && ($roledef ne '')) { |
|
$r->print('Existing Role "'); |
|
} else { |
|
$r->print('New Role "'); |
|
$roledef=''; |
|
} |
|
$r->print($rolename.'"</h2>'); |
|
# ------------------------------------------------------- What can be assigned? |
|
my %full=(); |
|
my %courselevel=(); |
|
foreach (split(/\:/,$Apache::lonnet::pr{'cr:c'})) { |
|
my ($priv,$restrict)=split(/\&/,$_); |
|
unless ($restrict) { $restrict='F'; } |
|
$courselevel{$priv}=$restrict; |
|
$full{$priv}=1; |
|
} |
|
my %domainlevel=(); |
|
foreach (split(/\:/,$Apache::lonnet::pr{'cr:d'})) { |
|
my ($priv,$restrict)=split(/\&/,$_); |
|
unless ($restrict) { $restrict='F'; } |
|
$domainlevel{$priv}=$restrict; |
|
$full{$priv}=1; |
|
} |
|
$r->print('<table border="2"><tr><th>Privilege</th><th>Course Level</th><th>Domain Level</th></tr>'); |
|
foreach (sort keys %full) { |
|
$r->print('<tr><td>'.&Apache::lonnet::plaintext($_).'</td><td>'. |
|
$courselevel{$_}.'</td><td>'.$domainlevel{$_}.'</td></tr>'); |
|
} |
|
$r->print('</table>'); |
|
$r->print('Not yet implemented.'); |
|
} |
|
|
# ================================================================ Main Handler |
# ================================================================ Main Handler |
sub handler { |
sub handler { |
my $r = shift; |
my $r = shift; |
Line 849 sub handler {
|
Line 933 sub handler {
|
&print_user_modification_page($r); |
&print_user_modification_page($r); |
} elsif ($ENV{'form.phase'} eq 'update_user_data') { |
} elsif ($ENV{'form.phase'} eq 'update_user_data') { |
&update_user_data($r); |
&update_user_data($r); |
|
} elsif ($ENV{'form.phase'} eq 'selected_custom_edit') { |
|
&custom_role_editor($r); |
} |
} |
} else { |
} else { |
$ENV{'user.error.msg'}= |
$ENV{'user.error.msg'}= |