an absolute slew of changes.

This commit is contained in:
Matthew Wilson 2006-01-18 01:45:55 +00:00
parent 9499e17cfd
commit e33c7bebc3
22 changed files with 80 additions and 68 deletions

View file

@ -366,6 +366,7 @@ sub getAssetAdderLinks {
my $addToUrl = shift;
my $type = shift || "assets";
my %links;
return [];
foreach my $class (@{$self->session->config->get($type)}) {
next unless $class;
my $load = "use ".$class;

View file

@ -305,7 +305,7 @@ sub view {
my $self = shift;
# we've got to determine what our start point is based upon user conditions
my $start;
$self->session->asset = WebGUI::Asset->newByUrl($self->session) unless ($self->session->asset);
$self->session->asset(WebGUI::Asset->newByUrl($self->session)) unless ($self->session->asset);
my $current = $self->session->asset;
if ($self->get("startType") eq "specificUrl") {
$start = WebGUI::Asset->newByUrl($self->session,$self->get("startPoint"));

View file

@ -136,7 +136,7 @@ sub authenticate {
my $self = shift;
my $username = shift;
my $i18n = WebGUI::International->new($self->session);
my $user = $self->session->db->quickHashRef("select userId,authMethod,status from users where username=".$self->session->db->$self->session->db->quote($username));
my $user = $self->session->db->quickHashRef("select userId,authMethod,status from users where username=".$self->session->db->quote($username));
my $uid = $user->{userId};
#If userId does not exist or is not active, fail login
if(!$uid){
@ -326,7 +326,7 @@ Removes the user's authentication parameters from the database for all authentic
sub deleteParams {
my $self = shift;
$self->session->db->write("delete from authentication where userId=".$self->session->db->$self->session->db->quote($self->userId));
$self->session->db->write("delete from authentication where userId=".$self->session->db->quote($self->userId));
}
#-------------------------------------------------------------------
@ -363,7 +363,7 @@ sub displayAccount {
$vars->{'account.form.submit'} = WebGUI::Form::submit($self->session,{});
$vars->{'account.form.footer'} = WebGUI::Form::formFooter($self->session,);
$vars->{'account.options'} = WebGUI::Operation::Shared::accountOptions();
$vars->{'account.options'} = WebGUI::Operation::Shared::accountOptions($self->session);
return WebGUI::Asset::Template->new($self->session,$self->getAccountTemplateId)->process($vars);
}
@ -564,7 +564,7 @@ sub login {
#Create a new user
$uid = $self->userId;
$u = WebGUI::User->new($uid);
$u = WebGUI::User->new($self->session,$uid);
$self->session->user({user=>$u});
$u->karma($self->session->setting->get("karmaPerLogin"),"Login","Just for logging in.") if ($self->session->setting->get("useKarma"));
$self->_logLogin($uid,"success");
@ -587,7 +587,7 @@ Superclass method that performs standard logout routines.
sub logout {
my $self = shift;
$self->session->var->end($self->session->var->get("sessionId"));
$self->session->var->start(1);
$self->session->var->start(1,$self->session->getId);
my $u = WebGUI::User->new($self->session,1);
$self->{user} = $u;
return "";
@ -625,7 +625,8 @@ sub new {
$self->{error} = "";
$self->{profile} = ();
$self->{warning} = "";
my @callable = ('init', shift);
my $call = shift;
my @callable = ('init', @{$call});
$self->{callable} = \@callable;
bless $self, $class;
return $self;

View file

@ -416,7 +416,9 @@ sub new {
my $userId = $_[1];
my @callable = ('createAccount','deactivateAccount','displayAccount','displayLogin','login','logout','createAccountSave','deactivateAccountConfirm');
my $self = WebGUI::Auth->new($session,$authMethod,$userId,\@callable);
$self->{_connection} = WebGUI::LDAPLink->new($session,($session->scratch->get("ldapConnection") || $session->setting->get("ldapConnection")))->get;
my $connection = $session->scratch->get("ldapConnection") || $session->setting->get("ldapConnection");
my $ldaplink = WebGUI::LDAPLink->new($session,$connection);
$self->{_connection} = $ldaplink->get;
my $i18n = WebGUI::International->new($session, "AuthLDAP");
my %ldapStatusCode = map { $_ => $i18n->get("LDAPLink_".$_) }
(0..21, 32,33,34,36, 48..54, 64..71, 80);

View file

@ -135,14 +135,14 @@ Renders a date picker control.
sub toHtml {
my $self = shift;
if ($self->get("_defaulted") && $self->get("noDate") ) {
$self->get("value") = '';
$self->set("value",'');
}
else {
$self->get("value") = $self->session->datetime->epochToSet($self->get("value"));
$self->set("value",$self->session->datetime->epochToSet($self->get("value")));
}
my $language = WebGUI::International::getLanguage($self->session->user->profileField("language"),"languageAbbreviation");
my $language = WebGUI::International->new($self->session)->getLanguage($self->session->user->profileField("language"),"languageAbbreviation");
unless ($language) {
$language = WebGUI::International::getLanguage("English","languageAbbreviation");
$language = WebGUI::International->new($self->session)->getLanguage($self,"English","languageAbbreviation");
}
$self->session->style->setScript($self->session->config->get("extrasURL").'/calendar/calendar.js',{ type=>'text/javascript' });
$self->session->style->setScript($self->session->config->get("extrasURL").'/calendar/lang/calendar-'.$language.'.js',{ type=>'text/javascript' });

View file

@ -117,7 +117,7 @@ Renders an HTML area field.
sub toHtml {
my $self = shift;
$self->session->style->setScript($self->session->config->get("extrasURL").'/textFix.js',{ type=>'text/javascript' });
$self->set("extras", $self->('extras') . ' onblur="fixChars(this.form.'.$self->get("name").')" mce_editable="true" ');
$self->set("extras", $self->get('extras') . ' onblur="fixChars(this.form.'.$self->get("name").')" mce_editable="true" ');
return $self->SUPER::toHtml.WebGUI::Asset::RichEdit->new($self->session,$self->get("richEditId"))->getRichEditor($self->get('id'));
my $i18n = WebGUI::International->new($self->session);
my $richEdit = WebGUI::Asset::RichEdit->new($self->session,$self->get("richEditId"));

View file

@ -117,7 +117,7 @@ Renders an integer field.
sub toHtml {
my $self = shift;
$self->session->style->setScript($self->session->config->get("extrasURL").'/inputCheck.js',{ type=>'text/javascript' });
$self->set("extras", $self->('extras') . ' onkeyup="doInputCheck(this.form.'.$self->get("name").',\'0123456789-\')"');
$self->set("extras", $self->get('extras') . ' onkeyup="doInputCheck(this.form.'.$self->get("name").',\'0123456789-\')"');
return $self->SUPER::toHtml;
}

View file

@ -146,7 +146,7 @@ sub getLanguages {
foreach my $file (@files) {
if ($file =~ /(.*?)\.pm$/) {
my $language = $1;
$hashRef->{$language} = getLanguage($language,"label");
$hashRef->{$language} = $self->getLanguage($language,"label");
}
}
return $hashRef;
@ -207,6 +207,7 @@ Specify a default language. Defaults to user preference or "English".
sub new {
my ($class, $session, $namespace, $language) = @_;
use WebGUI; WebGUI::dumpSession($session);
bless( {
_session => $session,
_namespace => $namespace,

View file

@ -59,7 +59,7 @@ sub execute {
$session->errorHandler->error("Couldn't compile operation: ".$operation->{$op}.". Root cause: ".$@) if ($@);
# Call the method
$cmd = $operation->{$op} . '::www_'.$op;
$output = eval{&$cmd($session)};
$output = eval{&{$cmd}($session)};
$session->errorHandler->error("Couldn't execute operation : ".$cmd.". Root cause: ".$@) if ($@);
} else {
$session->errorHandler->security("execute an invalid operation: ".$op);

View file

@ -51,7 +51,7 @@ via WebGUI::Session::switchAdminOff()
sub www_switchOffAdmin {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
return "" unless ($session->user->isInGroup(12));
WebGUI::Session::switchAdminOff();
$session->var->switchAdminOff();
return "";
}
@ -60,14 +60,13 @@ sub www_switchOffAdmin {
=head2 www_adminConsole ( )
If the current user is in the Turn On Admin Group, then allow them to turn on Admin mode.
via WebGUI::Session::switchAdminOn()
=cut
sub www_switchOnAdmin {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
return "" unless ($session->user->isInGroup(12));
WebGUI::Session::switchAdminOn();
$session->var->switchAdminOn();
return "";
}

View file

@ -30,8 +30,8 @@ Get the instance of this object or create a new instance if none exists
=cut
sub getInstance {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
#Get Auth Settings
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
#Get Auth Settings
my $authMethod = $session->user->authMethod || $session->setting->get("authMethod");
$authMethod = $session->setting->get("authMethod") if($session->user->userId eq '1');
$authMethod = $_[0] if($_[0] && isIn($_[0], @{$session->config->get("authMethods")}));
@ -41,8 +41,8 @@ sub getInstance {
my $load = "use ".$cmd;
eval($load);
$session->errorHandler->fatal("Authentication module failed to compile: $cmd.".$@) if($@);
my $auth = eval{$cmd->new($session, $authMethod,$userId)};
$session->errorHandler->fatal("Couldn't instantiate authentication module: $authMethod. Root cause: ".$@) if($@);
my $auth = eval{$cmd->new($session, $authMethod,$userId)};
$session->errorHandler->fatal("Couldn't instantiate authentication module: $authMethod. Root cause: ".$@) if($@);
return $auth;
}
@ -59,16 +59,16 @@ is returned.
sub www_auth {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
my $auth;
($auth) = $session->db->quickArray("select authMethod from users where username=".$session->db->quote($session->form->process("username"))) if($session->form->process("username"));
my $authMethod = getInstance($session,$auth);
my $methodCall = shift || $session->form->process("method") || "init";
if(!$authMethod->isCallable($methodCall)){
$session->errorHandler->security("access uncallable auth method");
my $i18n = WebGUI::International->new($session);
return $i18n->get(1077);
}
return $session->style->userStyle($authMethod->$methodCall);
my $auth;
($auth) = $session->db->quickArray("select authMethod from users where username=".$session->db->quote($session->form->process("username"))) if($session->form->process("username"));
my $authMethod = getInstance($session,$auth);
my $methodCall = shift || $session->form->process("method") || "init";
if(!$authMethod->isCallable($methodCall)){
$session->errorHandler->security("access uncallable auth method");
my $i18n = WebGUI::International->new($session);
return $i18n->get(1077);
}
return $session->style->userStyle($authMethod->$methodCall);
}

View file

@ -78,7 +78,7 @@ sub www_flushCache {
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
my $cache = WebGUI::Cache->new($session,);
$cache->flush;
return www_manageCache();
return www_manageCache($session);
}
#-------------------------------------------------------------------
@ -108,7 +108,7 @@ sub www_manageCache {
'</td></tr>';
$output .= "</table>";
return _submenu($output);
return _submenu($session,$output);
}

View file

@ -94,7 +94,7 @@ sub validateProfileData {
#-------------------------------------------------------------------
sub www_editProfile {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
return WebGUI::Operation::Auth::www_auth("init") if($session->user->userId eq '1');
return WebGUI::Operation::Auth::www_auth($session,"init") if($session->user->userId eq '1');
my $i18n = WebGUI::International->new($session);
my $vars = {};
$vars->{displayTitle} .= '<h1>'.$i18n->get(338).'</h1>';
@ -105,7 +105,7 @@ sub www_editProfile {
$vars->{'profile.form.hidden'} = WebGUI::Form::hidden($session,{"name"=>"op","value"=>"editProfileSave"});
$vars->{'profile.form.hidden'} .= WebGUI::Form::hidden($session,{"name"=>"uid","value"=>$session->user->userId});
my @array = ();
foreach my $category (@{WebGUI::ProfileCategory->getCategories}) {
foreach my $category (@{WebGUI::ProfileCategory->getCategories($session)}) {
next unless $category->isEditable;
my @temp = ();
foreach my $field (@{$category->getFields}) {
@ -150,7 +150,7 @@ sub www_editProfileSave {
#-------------------------------------------------------------------
sub www_viewProfile {
my $session = shift; use WebGUI; WebGUI::dumpSession($session);
my $u = WebGUI::User->new($session->form->process("uid"));
my $u = WebGUI::User->new($session,$session->form->process("uid"));
my $i18n = WebGUI::International->new($session);
my $vars = {};
$vars->{displayTitle} = '<h1>'.$i18n->get(347).' '.$u->username.'</h1>';
@ -161,7 +161,7 @@ sub www_viewProfile {
return $session->privilege->insufficient() if(!$session->user->isInGroup(2));
my @array = ();
foreach my $category (@{WebGUI::ProfileCategory->getCategories}) {
foreach my $category (@{WebGUI::ProfileCategory->getCategories($session)}) {
next unless ($category->get("visible"));
push(@array, {'profile.category' => $category->getLabel});
foreach my $field (@{$category->getFields}) {
@ -175,9 +175,10 @@ sub www_viewProfile {
}
$vars->{'profile.elements'} = \@array;
if ($session->user->userId eq $session->form->process("uid")) {
$vars->{'profile.accountOptions'} = WebGUI::Operation::Shared::accountOptions();
$vars->{'profile.accountOptions'} = WebGUI::Operation::Shared::accountOptions($session);
}
return $session->style->userStyle(WebGUI::Asset::Template->new("PBtmpl0000000000000052")->process($vars));
return $session->style->userStyle(WebGUI::Asset::Template->new($session,"PBtmpl0000000000000052")->process($vars));
}
1;

View file

@ -221,7 +221,7 @@ sub www_editProfileField {
-value => $data->{dataDefault},
);
my %hash;
foreach my $category (@{WebGUI::ProfileCategory->getCategories}) {
foreach my $category (@{WebGUI::ProfileCategory->getCategories($session)}) {
$hash{$category->getId} = $category->getLabel;
}
$f->selectBox(
@ -266,7 +266,7 @@ sub www_editProfileSettings {
return $session->privilege->adminOnly() unless ($session->user->isInGroup(3));
my $i18n = WebGUI::International->new($session,"WebGUIProfile");
my $output = "";
foreach my $category (@{WebGUI::ProfileCategory->getCategories}) {
foreach my $category (@{WebGUI::ProfileCategory->getCategories($session)}) {
$output .= $session->icon->delete('op=deleteProfileCategoryConfirm;cid='.$category->getId,'',$i18n->get(466));
$output .= $session->icon->edit('op=editProfileCategory;cid='.$category->getId);
$output .= $session->icon->moveUp('op=moveProfileCategoryUp;cid='.$category->getId);

View file

@ -342,7 +342,7 @@ sub www_editUser {
my $style = '" style="display: none;' unless ($_ eq $u->authMethod);
$tabform->getTab("account")->raw('<tr id="'.$_.$style.'"><td colspan="2" align="center"><table>'.$authInstance->editUserForm.'<tr><td width="170">&nbsp;</td><td>&nbsp;</td></tr></table></td></tr>');
}
foreach my $category (@{WebGUI::ProfileCategory->getCategories}) {
foreach my $category (@{WebGUI::ProfileCategory->getCategories($session)}) {
$tabform->getTab("profile")->raw('<tr><td colspan="2" class="tableHeader">'.$category->getLabel.'</td></tr>');
foreach my $field (@{$category->getFields}) {
next if $field->getId =~ /contentPositions/;

View file

@ -107,6 +107,7 @@ sub www_setup {
$session->setting->set('companyURL',$session->form->url("companyURL"));
$session->setting->set('companyEmail',$session->form->email("companyEmail"));
$session->http->setRedirect($session->url->gateway());
$session->http->getHeader;
return "";
} else {
$output .= '<legend align="left">Admin Account</legend>';

View file

@ -124,10 +124,11 @@ Returns an array reference of all WebGUI::ProfileCategory objects in order of se
=cut
sub getCategories {
my $self = shift;
my $class = shift;
my $session = shift;
my @categories = ();
foreach my $id ($self->session->db->buildArray("select profileCategoryId from userProfileCategory order by sequenceNumber")) {
push(@categories,WebGUI::ProfileCategory->new($self->session,$id));
foreach my $id ($session->db->buildArray("select profileCategoryId from userProfileCategory order by sequenceNumber")) {
push(@categories,WebGUI::ProfileCategory->new($session,$id));
}
return \@categories;
}
@ -173,7 +174,7 @@ Returns the eval'd label for this category.
sub getLabel {
my $self = shift;
return WebGUI::Operation::Shared::secureEval($self->get("label"));
return WebGUI::Operation::Shared::secureEval($self->session,$self->get("label"));
}
#-------------------------------------------------------------------

View file

@ -135,7 +135,7 @@ sub formField {
$properties->{label} = $self->getLabel unless $properties->{label};
$properties->{fieldType} = $self->get("fieldType");
$properties->{name} = $self->getId;
my $values = WebGUI::Operation::Shared::secureEval($self->get("possibleValues")) || {};
my $values = WebGUI::Operation::Shared::secureEval($self->session,$self->get("possibleValues")) || {};
my $orderedValues = {};
tie %{$orderedValues}, 'Tie::IxHash';
foreach my $ov (sort keys %{$values}) {
@ -150,7 +150,7 @@ sub formField {
} elsif (!defined $u && $self->session->user->profileField($properties->{name})) {
$default = $self->session->user->profileField($properties->{name});
} else {
$default = WebGUI::Operation::Shared::secureEval($properties->{dataDefault});
$default = WebGUI::Operation::Shared::secureEval($self->session,$properties->{dataDefault});
}
$properties->{value} = $default;
if ($withWrapper == 1) {
@ -280,7 +280,7 @@ Returns the eval'd label for this field.
sub getLabel {
my $self = shift;
return WebGUI::Operation::Shared::secureEval($self->get("label"));
return WebGUI::Operation::Shared::secureEval($self->session,$self->get("label"));
}
#-------------------------------------------------------------------

View file

@ -359,8 +359,8 @@ sub open {
my $config = WebGUI::Config->new($webguiRoot,$configFile);
my $self = {_config=>$config, _server=>$server};
bless $self , $class;
$self->{_var} = WebGUI::Session::Var->new($self,$sessionId);
$self->{_request} = Apache2::Request->new($request, POST_MAX => 1024 * $self->setting->get("maxAttachmentSize")) if (defined $request);
$self->{_var} = WebGUI::Session::Var->new($self,$sessionId);
return $self;
}
@ -535,10 +535,11 @@ sub user {
}
delete $self->{_stow};
$self->{_user} = $option->{user} || WebGUI::User->new($self, $userId);
$self->var->start($userId,$self->getId);
$self->request->user($self->{_user}->username) if ($self->request);
} elsif (!exists $self->{_user}) {
$self->{_user} = WebGUI::User->new($self, $self->var->get('userId'));
}
$self->request->user($self->{_user}->username) if ($self->request);
return $self->{_user};
}

View file

@ -77,7 +77,9 @@ Retrieves the cookies from the HTTP header and returns a hash reference containi
sub getCookies {
my $self = shift;
if ($self->session->request) {
return APR::Request::Apache2->handle($self->session->request)->jar();
my $jarHashRef = APR::Request::Apache2->handle($self->session->request)->jar();
return $jarHashRef if $jarHashRef;
return {};
}
else {
return {};

View file

@ -213,20 +213,20 @@ Session id will be generated if not specified. In almost every case you should l
=cut
sub start {
my $self = shift;
my $userId = shift || 1;
my $sessionId = shift;
$self->{_var} = {
sessionId=>"new",
expires=>$self->session->datetime->time() + $self->session->setting->get("sessionTimeout"),
lastPageView=>$self->session->datetime->time(),
lastIP => $self->session->env->get("REMOTE_ADDR"),
adminOn => 0,
userId => $userId
};
$self->{_var}{sessionId} = $self->session->{_sessionId} = $self->session->db->setRow("userSession","sessionId",$self->{_var}, $sessionId);
$self->session->http->setCookie("wgSession",$sessionId);
return $self->getId;
my $self = shift;
my $userId = shift || 1;
my $sessionId = shift || "new";
$self->{_var} = {
sessionId=>$sessionId,
expires=>$self->session->datetime->time() + $self->session->setting->get("sessionTimeout"),
lastPageView=>$self->session->datetime->time(),
lastIP => $self->session->env->get("REMOTE_ADDR"),
adminOn => 0,
userId => $userId
};
$self->{_var}{sessionId} = $self->session->{_sessionId} = $self->session->db->setRow("userSession","sessionId",$self->{_var});
$self->session->http->setCookie("wgSession",$self->{_var}{sessionId}) unless $self->{_var}{sessionId} eq $self->session->http->getCookies->{"wgSession"};
return $self->getId;
}
#-------------------------------------------------------------------

View file

@ -67,6 +67,8 @@ is($user->authMethod, "WebGUI", 'authMethod() -- default value is WebGUI');
$lastUpdate = time();
$user->authMethod("LDAP");
is($user->authMethod, "LDAP", 'authMethod() -- set to LDAP');
$user->authMethod("WebGUI");
is($user->authMethod, "WebGUI", 'authMethod() -- set back to WebGUI');
is($user->lastUpdated, $lastUpdate, 'lastUpdated() -- authmethod change');
#See if datecreated is correct