username_rules - Incoming data: three arguments
keys of top level hash are short names (e.g., netid, noncredit); for each key, value is a hash.
sub username_rules {id_rules - Incoming data: three argumentsmy ($dom,$ruleshash,$rulesorder) = @_;}%{$ruleshash} = (
netid => {);name => 'MSU NetID',}desc => 'Eight characters or less',
authtype => 'krb5',
authparm => 'MSU.EDU',
authparmfixed => ",
authmsg => 'A new user with a username which matches a valid MSU NetID will log-in using the MSU Net ID and MSU Net password.',
@{$rulesorder} = ('netid');
return 'ok';
sub id_rules {selfcreate_rules - Incoming data: three argumentsmy ($dom,$ruleshash,$rulesorder) = @_;}%{$ruleshash} = (
studentID => {);name => 'MSU student PID',},desc => 'Letter A or a, followed by eight digits',
facstaffID = > {
name => 'MSU faculty/staff ID',},desc => 'Letter Z or z, followed by eight digits',
@{$rulesorder} = ('studentID','facstaffID');
return 'ok';
keys of top level hash are short names (e.g., msuemail); for each key, value is a hash
sub selfcreate_rules {The corresponding routines which check for compliance with rules enabled via Domain Configuration- > User Creation are username_check(), id_check(), and selfcreate_check(). The three routines accept a similar set of four arguments, and return 'ok' in each case, if no error occurred.my ($dom,$ruleshash,$rulesorder) = @_;}%{$ruleshash} = (
msuemail => {},name => 'MSU e-mail address ',
desc => 'netid@msu.edu',
);
@{$rulesorder} = ('msuemail');
return 'ok';
- proposed username, id or self-created username being compared against rules (scalar)
keys are rule names - values are: 1 or 0 (for matched or unmatched)
username_check
sub username_check {id_checkmy ($dom,$uname,$to_check,$resultshash) = @_;}my $outcome;
if (ref($to_check) eq 'ARRAY') {
foreach my $item (@{$to_check}) {}if ($item eq 'netid') {}if ($uname =~ /^\w{2,8}$/) {$resultshash->{$item} = 1;} else {$resultshash->{$item} = 0;}$outcome = 'ok';
return $outcome;
sub id_check {selfcreate_checkmy ($dom,$id,$to_check,$resultshash) = @_;}my $outcome;
if (ref($to_check) eq 'ARRAY') {
foreach my $item (@{$to_check}) {}if ($item eq 'facstaffID') {}if ($id =~ /^z\d{8}$/i) {} elsif ($item eq 'studentID') {$resultshash->{$item} = 1;} else {$resultshash->{$item} = 0;}if ($id =~ /^a\d{8}$/i) {}$resultshash->{$item} = 1;} else {$resultshash->{$item} = 0;}$outcome = 'ok';
return $outcome;
sub selfcreate_check {my ($dom,$selfcreatename,$to_check,$resultshash) = @_;}my $outcome;
if (ref($to_check) eq 'ARRAY') {
foreach my $item (@{$to_check}) {}if ($item eq 'msuemail') {}if ($selfcreatename =~ /^\w{2,8}\@msu\.edu$/) {}$resultshash->{$item} = 1;} else {$resultshash->{$item} = 0;}$outcome = 'ok';
return $outcome;