editRegistrantSave
This commit is contained in:
parent
93b5a8eeea
commit
94ad7d66aa
1 changed files with 85 additions and 16 deletions
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue