lots of operation and auth fixes.

This commit is contained in:
Matthew Wilson 2006-01-19 03:07:34 +00:00
parent 1ab3df1f30
commit 150087f703
19 changed files with 71 additions and 68 deletions

View file

@ -310,7 +310,7 @@ sub getFieldsList {
my $output = '<a href="'.$self->getUrl('op=editProfileSettings').'" class="formLink">'.$i18n->get('Manage Profile Fields').'</a><br /><br />';
my %fieldNames;
tie %fieldNames, 'Tie::IxHash';
foreach my $field (@{WebGUI::ProfileField->getFields}) {
foreach my $field (@{WebGUI::ProfileField->new($self->session,'dummy')->getFields}) {
my $fieldId = $field->getId;
next if $fieldId =~ /contentPositions/;
$fieldNames{$fieldId} = $field->getLabel.' ['.$fieldId.']';
@ -708,11 +708,11 @@ sub www_saveUserPrefs {
$self->uncacheOverrides;
my $i18n = WebGUI::International->new($self->session);
my $u = WebGUI::User->new($self->session, $self->discernUserId);
foreach my $fieldId ($self->request->params) {
foreach my $fieldId ($self->request->param) {
my $field = WebGUI::ProfileField->new($self->session,$fieldId);
next unless $field;
$data{$field->getId} = $field->formProcess;
if ($field->getId eq 'email' && WebGUI::Operation::Profile::isDuplicateEmail($data{$field->getId})) {
if ($field->getId eq 'email' && WebGUI::Operation::Profile::isDuplicateEmail($self->session,$data{$field->getId})) {
return '<li>'.$i18n->get(1072).'</li>';
}
if ($field->isRequired && !$data{$field->getId}) {

View file

@ -229,7 +229,7 @@ sub view {
if($self->session->env->get("REQUEST_METHOD")=~/GET/i || $redirect != 0) { # request_method is also GET after a redirection. Just to make sure we're
# not posting the same data over and over again.
if($redirect == 0) {
foreach my $input_name ($self->session->request->params) {
foreach my $input_name ($self->session->request->param) {
next if ($input_name !~ /^HttpProxy_/); # Skip non proxied form var's
$input_name =~ s/^HttpProxy_//;
$proxiedUrl=$self->session->url->append($proxiedUrl,"$input_name=".$self->session->form->process('HttpProxy_'.$input_name));
@ -241,7 +241,7 @@ sub view {
my $contentType = 'application/x-www-form-urlencoded'; # default Content Type header
# Create a %formdata hash to pass key/value pairs to the POST request
foreach my $input_name ($self->session->request->params) {
foreach my $input_name ($self->session->request->param) {
next if ($input_name !~ /^HttpProxy_/); # Skip non proxied form var's
$input_name =~ s/^HttpProxy_//;

View file

@ -320,7 +320,7 @@ sub _processQuery {
if (defined $dbh) {
if ($query =~ /^select/i || $query =~ /^show/i || $query =~ /^describe/i) {
my $url = $self->getUrl('func=view');
foreach ($self->session->request->params) {
foreach ($self->session->request->param) {
unless ($_ eq "pn" || $_ eq "func" || $_ =~ /identifier/i || $_ =~ /password/i) {
$url = $self->session->url->append($url, $self->session->url->escape($_)
.'='.$self->session->url->escape($self->session->form->process($_)));

View file

@ -1168,7 +1168,7 @@ sub www_respond {
return "" unless ($self->session->scratch->get($varname));
my $userId = ($self->get("anonymous")) ? substr(md5_hex($self->session->user->userId),0,8) : $self->session->user->userId;
my $terminate = 0;
foreach my $key ($self->session->request->params) {
foreach my $key ($self->session->request->param) {
if ($key =~ /^answerId_(.+)$/) {
my $id = $1;
my ($previousResponse) = $self->session->db->quickArray("select count(*) from Survey_questionResponse

View file

@ -163,7 +163,7 @@ sub getEditForm {
-hoverHelp => $i18n->get('5 description'),
-value => $self->get('params'),
);
if ($self->session->config->('soapHttpHeaderOverride')) {
if ($self->session->config->get('soapHttpHeaderOverride')) {
$tabform->getTab("properties")->text (
-name => 'httpHeader',
-label => $i18n->get(16),
@ -245,7 +245,7 @@ sub view {
# this page, with important params
@seen{@exclude_params} = ();
foreach ($self->session->request->params) {
foreach ($self->session->request->param) {
unless (exists $seen{$_}) {
$query_string .= $self->session->url->escape($_) . '='
. $self->session->url->escape($self->session->form->process($_)) . ';';

View file

@ -319,7 +319,7 @@ sub www_manageClipboard {
} else {
$ac->addSubmenuItem($self->getUrl('func=manageClipboard;systemClipboard=1'), $i18n->get(954));
$ac->addSubmenuItem($self->getUrl('func=emptyClipboard'), $i18n->get(950),
'onclick="return window.confirm(\''.$i18n->(951,"WebGUI").'\')"',"Asset");
'onclick="return window.confirm(\''.$i18n->get(951,"WebGUI").'\')"',"Asset");
$limit = 1;
}
$self->session->style->setLink($self->session->config->get("extrasURL").'/assetManager/assetManager.css', {rel=>"stylesheet",type=>"text/css"});

View file

@ -191,7 +191,7 @@ sub www_manageTrash {
$ac->setHelp("trash manage");
if ($self->session->form->process("systemTrash") && $self->session->user->isInGroup(3)) {
$header = $i18n->get(965);
$ac->addSubmenuItem($self->getUrl('func=manageTrash'), $i18n->(10,"WebGUI"));
$ac->addSubmenuItem($self->getUrl('func=manageTrash'), $i18n->get(10,"WebGUI"));
} else {
$ac->addSubmenuItem($self->getUrl('func=manageTrash;systemTrash=1'), $i18n->get(964));
$limit = 1;

View file

@ -199,7 +199,7 @@ sub createAccount {
$vars->{'create.form.header'} .= WebGUI::Form::hidden($self->session,{"name"=>"method","value"=>$method});
#User Defined Options
$vars->{'create.form.profile'} = WebGUI::Operation::Profile::getRequiredProfileFields();
$vars->{'create.form.profile'} = WebGUI::Operation::Profile::getRequiredProfileFields($self->session);
$vars->{'create.form.submit'} = WebGUI::Form::submit($self->session,{});
$vars->{'create.form.footer'} = WebGUI::Form::formFooter($self->session,);
@ -238,37 +238,39 @@ Hashref of profile values returned by the function WebGUI::Operation::Profile::v
=cut
sub createAccountSave {
my $self = shift;
my $username = $_[0];
my $properties = $_[1];
my $password = $_[2];
my $profile = $_[3];
my $self = shift;
my $username = $_[0];
my $properties = $_[1];
my $password = $_[2];
my $profile = $_[3];
my $i18n = WebGUI::International->new($self->session);
my $u = WebGUI::User->new($self->session,"new");
$self->user($u);
my $userId = $u->userId;
$u->username($username);
$u->authMethod($self->authMethod);
$u->karma($self->session->setting->get("karmaPerLogin"),"Login","Just for logging in.") if ($self->session->setting->get("useKarma"));
WebGUI::Operation::Profile::saveProfileFields($u,$profile) if($profile);
$self->saveParams($userId,$self->authMethod,$properties);
if ($self->getSetting("sendWelcomeMessage")){
my $authInfo = "\n\n".$i18n->get(50).": ".$username;
$authInfo .= "\n".$i18n->get(51).": ".$password if($password);
$authInfo .= "\n\n";
WebGUI::MessageLog::addEntry($self->userId,"",$i18n->get(870),$self->getSetting("welcomeMessage").$authInfo);
}
$self->session->user({user=>$u});
$self->_logLogin($userId,"success");
my $u = WebGUI::User->new($self->session,"new");
$self->user($u);
my $userId = $u->userId;
$u->username($username);
$u->authMethod($self->authMethod);
$u->karma($self->session->setting->get("karmaPerLogin"),"Login","Just for logging in.") if ($self->session->setting->get("useKarma"));
WebGUI::Operation::Profile::saveProfileFields($self->session,$u,$profile) if($profile);
$self->saveParams($userId,$self->authMethod,$properties);
if ($self->getSetting("sendWelcomeMessage")){
my $authInfo = "\n\n".$i18n->get(50).": ".$username;
$authInfo .= "\n".$i18n->get(51).": ".$password if($password);
$authInfo .= "\n\n";
WebGUI::MessageLog::addEntry($self->userId,"",$i18n->get(870),$self->getSetting("welcomeMessage").$authInfo);
}
$self->session->user({user=>$u});
$self->session->var->end($self->session->var->get("sessionId"));
$self->session->var->start($userId,$self->session->getId);
$self->_logLogin($userId,"success");
my $command = $self->session->setting->get("runOnRegistration");
WebGUI::Macro::process($self->session,\$command);
system($command) if ($self->session->setting->get("runOnRegistration") ne "");
WebGUI::MessageLog::addInternationalizedEntry('',$self->session->setting->get("onNewUserAlertGroup"),'',536) if ($self->session->setting->get("alertOnNewUser"));
return "";
system($command) if ($self->session->setting->get("runOnRegistration") ne "");
WebGUI::MessageLog::addInternationalizedEntry('',$self->session->setting->get("onNewUserAlertGroup"),'',536) if ($self->session->setting->get("alertOnNewUser"));
return "";
}
#-------------------------------------------------------------------

View file

@ -210,7 +210,7 @@ sub createAccountSave {
}
}
$error .= $self->error unless($self->_isValidPassword($password,$passConfirm));
my ($profile, $temp, $warning) = WebGUI::Operation::Profile::validateProfileData();
my ($profile, $temp, $warning) = WebGUI::Operation::Profile::validateProfileData($self->session);
$error .= $temp;
return $self->createAccount($error) unless ($error eq "");

View file

@ -200,7 +200,7 @@ The namespace of the plugin.
sub init {
my ($class, $session, $namespace, $properties);
$class = shift;
$session = shift;
$session = shift; use WebGUI; WebGUI::dumpSession($session);
$namespace = shift;
$properties = $session->db->buildHashRef("select fieldName, fieldValue from commerceSettings where namespace=".$session->db->quote($namespace)." and type='Payment'");

View file

@ -501,8 +501,8 @@ sub confirmTransaction {
sub init {
my ($class, $self);
$class = shift;
$self = $class->SUPER::init('ITransact');
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
$self = $class->SUPER::init($session,'ITransact');
return $self;
}

View file

@ -39,8 +39,8 @@ sub _submenu {
#-------------------------------------------------------------------
sub _clearCheckoutScratch {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
_clearShippingScratch();
_clearPaymentScratch();
_clearShippingScratch($session);
_clearPaymentScratch($session);
}
#-------------------------------------------------------------------
@ -107,9 +107,9 @@ sub www_cancelTransaction {
#-------------------------------------------------------------------
sub www_checkout {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
return WebGUI::Operation::execute($session,'selectShippingMethod') unless (_shippingSelected);
return WebGUI::Operation::execute($session,'selectShippingMethod') unless (_shippingSelected($session));
return WebGUI::Operation::execute($session,'selectPaymentGateway') unless (_paymentSelected);
return WebGUI::Operation::execute($session,'selectPaymentGateway') unless (_paymentSelected($session));
return WebGUI::Operation::execute($session,'checkoutConfirm');
}
@ -129,7 +129,7 @@ sub www_checkoutConfirm {
}
# If no payment gateway has been selected yet, have the user do so now.
return WebGUI::Operation::execute($session,'checkout') unless (_paymentSelected && _shippingSelected);
return WebGUI::Operation::execute($session,'checkout') unless (_paymentSelected($session) && _shippingSelected($session));
$var{errorLoop} = [ map {{message => $_}} @{$errors} ] if $errors;
@ -210,7 +210,7 @@ sub www_checkoutSubmit {
}
# Check if a valid payment gateway has bee selected. If not have the user do so.
return WebGUI::Operation::execute($session,'checkout') unless (_paymentSelected && _shippingSelected);
return WebGUI::Operation::execute($session,'checkout') unless (_paymentSelected($session) && _shippingSelected($session));
# Load shipping plugin.
$shipping = WebGUI::Commerce::Shipping->load($session, $session->scratch->get('shippingMethod'));
@ -315,7 +315,7 @@ sub www_checkoutSubmit {
$param{statusExplanation} = $i18n->get('status codes information');
$param{resultLoop} = \@resultLoop;
_clearCheckoutScratch;
_clearCheckoutScratch($session);
# If everythings ok show the purchase history
return WebGUI::Operation::execute($session,'viewPurchaseHistory') unless ($checkoutError);
@ -505,7 +505,7 @@ sub www_editCommerceSettings {
$session->style->setScript($session->config->get("extrasURL").'/swapLayers.js',{type=>"text/javascript"});
return _submenu($tabform->print, 'edit commerce settings title', 'commerce manage');
return _submenu($session,$tabform->print, 'edit commerce settings title', 'commerce manage');
}
#-------------------------------------------------------------------
@ -513,7 +513,7 @@ sub www_editCommerceSettingsSave {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
foreach ($session->request->params) {
foreach ($session->request->param) {
# Store the plugin confiuration data in a special table for security and the general settings in the
# normal settings table for easy access.
if (/~([^~]*)~([^~]*)~([^~]*)/) {
@ -524,7 +524,7 @@ sub www_editCommerceSettingsSave {
fieldValue => $session->form->process($_)
});
} elsif ($_ ne 'op') {
WebGUI::Setting::set($_,$session->form->process($_));
$session->setting->set($_,$session->form->process($_));
}
}
@ -561,7 +561,7 @@ sub www_listPendingTransactions {
$output .= '</table>';
$output .= $p->getBarTraditional($session->form->process("pn"));
_submenu($output, 'list pending transactions', 'list pending transactions');
_submenu($session,$output, 'list pending transactions', 'list pending transactions');
}
#-------------------------------------------------------------------
@ -657,7 +657,7 @@ sub www_listTransactions {
}
$output .= '</table>';
return _submenu($output, 'list transactions')
return _submenu($session,$output, 'list transactions')
}
#-------------------------------------------------------------------
@ -665,7 +665,7 @@ sub www_selectPaymentGateway {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
my ($plugins, $f, $i18n, @pluginLoop, %var);
_clearPaymentScratch;
_clearPaymentScratch($session);
$i18n = WebGUI::International->new($session, 'Commerce');
$plugins = WebGUI::Commerce::Payment->getEnabledPlugins($session);
@ -710,7 +710,7 @@ sub www_selectShippingMethod {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
my ($plugins, $f, $i18n, @pluginLoop, %var);
_clearShippingScratch;
_clearShippingScratch($session);
$i18n = WebGUI::International->new($session, 'Commerce');
$plugins = WebGUI::Commerce::Shipping->getEnabledPlugins($session);
@ -768,7 +768,7 @@ sub www_updateCart {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
my $shoppingCart = WebGUI::Commerce::ShoppingCart->new($session);
foreach my $formElement ($session->request->params) {
foreach my $formElement ($session->request->param) {
if ($formElement =~ m/^quantity~([^~]*)~([^~]*)$/) {
$shoppingCart->setQuantity($2, $1, $session->form->process($formElement));
}

View file

@ -29,7 +29,7 @@ use WebGUI::Operation::Shared;
sub getRequiredProfileFields {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
my @array;
foreach my $field (@{WebGUI::ProfileField->getRequiredFields}) {
foreach my $field (@{WebGUI::ProfileField->new($session,'dummy')->getRequiredFields}) {
push(@array, {
'profile.formElement' => $field->formField,
'profile.formElement.label' => $field->getLabel
@ -75,7 +75,7 @@ sub validateProfileData {
my $error = "";
my $warning = "";
my $i18n = WebGUI::International->new($session);
foreach my $field (@{WebGUI::ProfileField->getEditableFields}) {
foreach my $field (@{WebGUI::ProfileField->new($session,'dummy')->getEditableFields}) {
my $fieldValue = $field->formProcess;
if (ref $fieldValue eq "ARRAY") {
$data{$field->getId} = $$fieldValue[0];
@ -84,7 +84,7 @@ sub validateProfileData {
}
if ($field->isRequired && !$data{$field->getId}) {
$error .= '<li>'.$field->getLabel.' '.$i18n->get(451).'</li>';
} elsif ($field->getId eq "email" && isDuplicateEmail($data{$field->getId})) {
} elsif ($field->getId eq "email" && isDuplicateEmail($session,$data{$field->getId})) {
$warning .= '<li>'.$i18n->get(1072).'</li>';
}
}

View file

@ -300,10 +300,10 @@ sub www_saveSettings {
next;
}
unless ($key eq "op") {
WebGUI::Setting::set($key,$value);
$session->setting->set($key,$value);
}
}
return www_editSettings();
return www_editSettings($session);
}
1;

View file

@ -65,7 +65,7 @@ sub www_viewStatistics {
($data) = $session->db->quickArray("select count(*) from groups");
$output .= '<tr><td align="right" class="tableHeader">'.$i18n->get(89).':</td><td class="tableData">'.$data.'</td></tr>';
$output .= '</table>';
return _submenu($output);
return _submenu($session,$output);
}

View file

@ -407,7 +407,7 @@ sub www_editUserSave {
my $authInstance = WebGUI::Operation::Auth::getInstance($_,$u->userId);
$authInstance->editUserFormSave;
}
foreach my $field (@{WebGUI::ProfileField->getFields}) {
foreach my $field (@{WebGUI::ProfileField->new($session,'dummy')->getFields}) {
next if $field->getId =~ /contentPositions/;
$u->profileField($field->getId,$field->formProcess);
}

View file

@ -173,7 +173,7 @@ Returns the value retrieved from a form post.
sub formProcess {
my $self = shift;
my $result = $self->session->form->process($self->getId,$self->get("fieldType"),WebGUI::Operation::Shared::secureEval($self->get("dataDefault")));
my $result = $self->session->form->process($self->getId,$self->get("fieldType"),WebGUI::Operation::Shared::secureEval($self->session,$self->get("dataDefault")));
if (ref $result eq "ARRAY") {
my @results = @$result;
for (my $count=0;$count<scalar(@results);$count++) {

View file

@ -128,7 +128,7 @@ sub paramsHashRef {
my $self = shift;
unless ($self->{_paramsHashRef}) {
my $hash;
foreach ($self->session->request->params) {
foreach ($self->session->request->param) {
$hash->{$_} = $self->process($_);
}
$self->{_paramsHashRef} = $hash;

View file

@ -168,6 +168,7 @@ sub new {
$self->{_var} = $session->db->quickHashRef("select * from userSession where sessionId=".$session->db->quote($sessionId));
if ($self->{_var}{expires} && $self->{_var}{expires} < $session->datetime->time()) {
$self->end;
$self->start(1,$sessionId);
} elsif ($self->{_var}{sessionId} ne "") {
$self->{_var}{lastPageView} = $session->datetime->time();
$self->{_var}{lastIP} = $session->env->get("REMOTE_ADDR");