editRegistrantSave

This commit is contained in:
Matthew Wilson 2006-05-08 03:36:59 +00:00
parent 93b5a8eeea
commit 94ad7d66aa

View file

@ -19,6 +19,7 @@ use base 'WebGUI::Asset::Wobject';
use Tie::IxHash; use Tie::IxHash;
use WebGUI::HTMLForm; use WebGUI::HTMLForm;
use JSON; use JSON;
use Digest::MD5;
use WebGUI::Workflow::Instance; use WebGUI::Workflow::Instance;
use WebGUI::Cache; use WebGUI::Cache;
use WebGUI::International; use WebGUI::International;
@ -3038,6 +3039,12 @@ sub www_editRegistrant {
label=>$i18n->get('badge id'), label=>$i18n->get('badge id'),
value=>$badgeId value=>$badgeId
); );
my $u;
my $username;
if ($data->{userId}) {
$u = WebGUI::User->new($self->session,$data->{userId});
$username = $u->username;
}
$f->user( $f->user(
name=>'userId', name=>'userId',
label=>$i18n->get('associated user'), label=>$i18n->get('associated user'),
@ -3055,6 +3062,10 @@ function setUserNew() {
userField.value="new"; userField.value="new";
userFieldDisplay.value="'.$i18n->get('create new user').'"; userFieldDisplay.value="'.$i18n->get('create new user').'";
} }
function resetToInitial() {
userField.value="'.$data->{userId}.'";
userFieldDisplay.value="'.$username.'";
}
</script> </script>
<input type="button" onclick="clearUserField();" value="'.$i18n->get('Unlink User').'" /><input type="button" onclick="setUserNew();" value="'.$i18n->get('create new user').'" />' <input type="button" onclick="clearUserField();" value="'.$i18n->get('Unlink User').'" /><input type="button" onclick="setUserNew();" value="'.$i18n->get('create new user').'" />'
); );
@ -3109,30 +3120,88 @@ function setUserNew() {
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub www_editPrereqSetSave { sub www_editRegistrantSave {
my $self = shift; my $self = shift;
return $self->session->privilege->insufficient unless ($self->canAddEvents); return $self->session->privilege->insufficient unless ($self->canAddEvents);
my $error = ''; my $error = '';
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem'); my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
foreach ('name') { foreach ('firstName','lastName') {
if ($self->session->form->get($_) eq "" || if ($self->session->form->get($_) eq "") {
$self->session->form->get($_) eq $i18n->get('type name here')) {
$error .= sprintf($i18n->get('null field error'),$_)."<br />"; $error .= sprintf($i18n->get('null field error'),$_)."<br />";
} }
} }
return $self->www_editPrereqSet(undef,$error) if $error; return $self->www_editRegistrant(undef,$error) if $error;
my $psid = $self->session->form->process('psid'); my $badgeId = $self->session->form->process('badgeId');
$psid = $self->setCollateral("EventManagementSystem_prerequisites", "prerequisiteId",{ my $userId = $self->session->form->get("userId", "user");
prerequisiteId=>$psid, my $firstName = $self->session->form->get("firstName", "text");
name => $self->session->form->process("name"), my $lastName = $self->session->form->get("lastName", "text");
operator => $self->session->form->process("operator",'radioList') my $address = $self->session->form->get("address", "text");
},0,0); my $city = $self->session->form->get("city", "text");
$self->session->db->write("delete from EventManagementSystem_prerequisiteEvents where prerequisiteId=?",[$psid]); my $state = $self->session->form->get("state", "text");
my @newRequiredEvents = $self->session->form->process('requiredEvents','checkList'); my $zipCode = $self->session->form->get("zipCode", "text");
foreach (@newRequiredEvents) { my $country = $self->session->form->get("country", "selectBox");
$self->session->db->write("insert into EventManagementSystem_prerequisiteEvents values (?,?)",[$psid,$_]); my $phoneNumber = $self->session->form->get("phone", "phone");
my $email = $self->session->form->get("email", "email");
$userId = '' if $userId eq '1';
my $addingNew = ($userId eq 'new') ? 1 : 0;
my $details = {
badgeId => $badgeId, # if this is "new", setCollateral will return the new one.
firstName => $firstName,
lastName => $lastName,
'address' => $address,
city => $city,
state => $state,
zipCode => $zipCode,
country => $country,
phone => $phoneNumber,
email => $email
};
$details->{userId} = $userId;
$details->{createdByUserId} = $self->session->var->get('userId') if ($addingNew && $userId);
$badgeId = $self->setCollateral("EventManagementSystem_badges", "badgeId",$details,0,0);
if ($userId) {
my $u;
if ($addingNew) {
$u = WebGUI::User->new($self->session,'new');
my $uid = lc($firstName).".".lc($lastName);
$uid =~ s/\s//g; # fix potential space problems in UID.
my ($uidIsTaken) = $self->session->db->quickArray("select count(userId) from users where username=".quote($uid));
while($uidIsTaken) {
if($uid =~ /(.*)(\d+$)/){
$uid = $1.($2+1);
} else {
$uid .= "1";
}
($uidIsTaken) = $self->session->db->quickArray("select count(userId) from users where username=".quote($uid));
}
$u->username($uid);
$u->authMethod("WebGUI");
my $auth = WebGUI::Auth::WebGUI->new($self->session,"WebGUI",$u->userId);
my $authprops = {};
$authprops->{changePassword} = 1;
$authprops->{changeUsername} = 0;
my $len = $self->session->setting->get("webguiPasswordLength") || 6;
my $password = "";
srand();
for(my $i = 0; $i < $len; $i++) {
$password .= chr(ord('A') + randint(32));
}
$authprops->{identifier} = Digest::MD5::md5_base64($password);
$auth->saveParams($u->userId,"WebGUI",$authprops);
} else {
$u = WebGUI::User->new($self->session,$userId);
}
$u->profileField('firstName',$firstName);
$u->profileField('lastName',$lastName);
$u->profileField('homeAddress',$address);
$u->profileField('homeCity',$city);
$u->profileField('homeState',$state);
$u->profileField('homeZip',$zipCode);
$u->profileField('homeCountry',$country);
$u->profileField('homePhone',$phoneNumber);
$u->profileField('email',$email);
} }
return $self->www_managePrereqSets(); return $self->www_manageRegistrants();
} }