[LON-CAPA-cvs] cvs: loncom /interface loncreateuser.pm
www
lon-capa-cvs@mail.lon-capa.org
Thu, 03 Oct 2002 14:56:48 -0000
www Thu Oct 3 10:56:48 2002 EDT
Modified files:
/loncom/interface loncreateuser.pm
Log:
Bug #599
Index: loncom/interface/loncreateuser.pm
diff -u loncom/interface/loncreateuser.pm:1.42 loncom/interface/loncreateuser.pm:1.43
--- loncom/interface/loncreateuser.pm:1.42 Fri Aug 23 15:43:11 2002
+++ loncom/interface/loncreateuser.pm Thu Oct 3 10:56:48 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Create a user
#
-# $Id: loncreateuser.pm,v 1.42 2002/08/23 19:43:11 matthew Exp $
+# $Id: loncreateuser.pm,v 1.43 2002/10/03 14:56:48 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -47,7 +47,7 @@
# 11/12,11/13,11/15 Scott Harrison
# 02/11/02 Matthew Hall
#
-# $Id: loncreateuser.pm,v 1.42 2002/08/23 19:43:11 matthew Exp $
+# $Id: loncreateuser.pm,v 1.43 2002/10/03 14:56:48 www Exp $
###
package Apache::loncreateuser;
@@ -80,6 +80,19 @@
$authformloc = &Apache::loncommon::authform_local(%param);
}
+
+
+# ==================================================== Figure out author access
+
+sub authorpriv {
+ my ($auname,$audom)=@_;
+ if (($auname ne $ENV{'user.name'}) ||
+ (($audom ne $ENV{'user.domain'}) &&
+ ($audom ne $ENV{'request.role.domain'}))) { return ''; }
+ unless (&Apache::lonnet::allowed('cca',$audom)) { return ''; }
+ return 1;
+}
+
# =================================================================== Phase one
sub print_username_entry_form {
@@ -98,8 +111,11 @@
<form action="/adm/createuser" method="post">
<input type="hidden" name="phase" value="get_user_info">
<p>
-Username: <input type="text" size="15" name="ccuname"><br>
-Domain: $domform
+<table>
+<tr><td>Username:</td><td><input type="text" size="15" name="ccuname">
+</td></tr><tr><td>
+Domain:</td><td>$domform</td></tr>
+</table>
</p>
<input type="submit" value="Continue">
</form>
@@ -294,18 +310,12 @@
}
}
}
- # I have no idea what the hell the above code does
- # So the following is a check:
- if ($allowed) {
- # If we are looking at a co-author role, make sure it is
- # for the current users construction space before we let
- # them revoke it.
- if (($role_code eq 'ca') &&
- ($ENV{'request.role'} !~ /^dc/)) {
- if ($area !~
- /^\/$ENV{'request.role.domain'}\/$ENV{'user.name'}/) {
- $allowed = 0;
- }
+ if ($role_code eq 'ca') {
+ $area=~/\/(\w+)\/(\w+)/;
+ if (&authorpriv($2,$1)) {
+ $allowed=1;
+ } else {
+ $allowed=0;
}
}
my $row = '';
@@ -427,7 +437,7 @@
#
# Co-Author
#
- if (&Apache::lonnet::allowed('cca',$ENV{'request.role.domain'})) {
+ if (&authorpriv($ENV{'user.name'},$ENV{'request.role.domain'})) {
my $cuname=$ENV{'user.name'};
my $cudom=$ENV{'request.role.domain'};
$r->print(<<ENDCOAUTH);