diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm
index 3b2044a21..fb28d5def 100644
--- a/lib/WebGUI/Asset.pm
+++ b/lib/WebGUI/Asset.pm
@@ -1285,7 +1285,7 @@ sub publish {
my $assetIds = $self->session->db->buildArrayRef("select assetId from asset where lineage like ".$self->session->db->quote($self->get("lineage").'%'));
my $idList = $self->session->db->quoteAndJoin($assetIds);
$self->session->db->write("update asset set state='published', stateChangedBy=".$self->session->db->quote($self->session->user->userId).", stateChanged=".$self->session->datetime->time()." where assetId in (".$idList.")");
- my $cache = WebGUI::Cache->new;
+ my $cache = WebGUI::Cache->new($self->session);
foreach my $id (@{$assetIds}) {
# we do the purge directly cuz it's a lot faster than instantiating all these assets
$cache->deleteChunk(["asset",$id]);
diff --git a/lib/WebGUI/Asset/Event.pm b/lib/WebGUI/Asset/Event.pm
index 343e823f9..bf5e89685 100644
--- a/lib/WebGUI/Asset/Event.pm
+++ b/lib/WebGUI/Asset/Event.pm
@@ -121,7 +121,7 @@ sub getEditForm {
})
);
}
- $tabform->getTab("display")->template($self->session,
+ $tabform->getTab("display")->template(
-name=>"templateId",
-value=>$self->getValue("templateId"),
-namespace=>"EventsCalendar/Event",
diff --git a/lib/WebGUI/Asset/FilePile.pm b/lib/WebGUI/Asset/FilePile.pm
index 6d6204a56..d0c1ac093 100644
--- a/lib/WebGUI/Asset/FilePile.pm
+++ b/lib/WebGUI/Asset/FilePile.pm
@@ -149,40 +149,40 @@ sub edit {
#-------------------------------------------------------------------
sub editSave {
- my $class = shift;
- my $tempStorage = WebGUI::Storage->create;
+ my $self = shift;
+ my $tempStorage = WebGUI::Storage->create($self->session);
$tempStorage->addFileFromFormPost("file");
foreach my $filename (@{$tempStorage->getFiles}) {
- my $storage = WebGUI::Storage::Image->create;
+ my $storage = WebGUI::Storage::Image->create($self->session);
$storage->addFileFromFilesystem($tempStorage->getPath($filename));
- $storage->setPrivileges($class->getParent->get("ownerUserId"),$class->getParent->get("groupIdView"),$class->getParent->get("groupIdEdit"));
+ $storage->setPrivileges($self->getParent->get("ownerUserId"),$self->getParent->get("groupIdView"),$self->getParent->get("groupIdEdit"));
my %data;
- my $className = 'WebGUI::Asset::File';
- $className = "WebGUI::Asset::File::Image" if ($storage->isImage($filename));
- foreach my $definition (@{$className->definition}) {
+ my $selfName = 'WebGUI::Asset::File';
+ $selfName = "WebGUI::Asset::File::Image" if ($storage->isImage($filename));
+ foreach my $definition (@{$selfName->definition($self->session)}) {
foreach my $property (keys %{$definition->{properties}}) {
- $data{$property} = $class->session->form->process(
+ $data{$property} = $self->session->form->process(
$property,
$definition->{properties}{$property}{fieldType},
$definition->{properties}{$property}{defaultValue}
);
}
}
- $data{className} = $className;
+ $data{className} = $selfName;
$data{storageId} = $storage->getId;
$data{filename} = $data{title} = $data{menuTitle} = $filename;
$data{templateId} = 'PBtmpl0000000000000024';
- $data{templateId} = 'PBtmpl0000000000000088' if ($className eq "WebGUI::Asset::File::Image");
- $data{url} = $class->getParent->getUrl.'/'.$filename;
- my $newAsset = $class->getParent->addChild(\%data);
+ $data{templateId} = 'PBtmpl0000000000000088' if ($selfName eq "WebGUI::Asset::File::Image");
+ $data{url} = $self->getParent->getUrl.'/'.$filename;
+ my $newAsset = $self->getParent->addChild(\%data);
delete $newAsset->{_storageLocation};
$newAsset->setSize($storage->getFileSize($filename));
- $newAsset->generateThumbnail if ($className eq "WebGUI::Asset::File::Image");
+ $newAsset->generateThumbnail if ($selfName eq "WebGUI::Asset::File::Image");
$newAsset->commit;
}
$tempStorage->delete;
- return $class->getParent->www_manageAssets if ($class->session->form->process("proceed") eq "manageAssets");
- return $class->getParent->www_view;
+ return $self->getParent->www_manageAssets if ($self->session->form->process("proceed") eq "manageAssets");
+ return $self->getParent->www_view;
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm
index 4a39959de..53b446f23 100644
--- a/lib/WebGUI/Asset/Shortcut.pm
+++ b/lib/WebGUI/Asset/Shortcut.pm
@@ -349,7 +349,7 @@ sub getOverridesList {
my %overrides = $self->getOverrides;
$output .= '
';
$output .= '';
- foreach my $definition (@{$self->getShortcutOriginal->definition}) {
+ foreach my $definition (@{$self->getShortcutOriginal->definition($self->session)}) {
foreach my $prop (keys %{$definition->{properties}}) {
next if $definition->{properties}{$prop}{fieldType} eq 'hidden';
$output .= '';
@@ -383,7 +383,7 @@ sub getOverrides {
my $orig = $self->getShortcutOriginal;
unless (exists $orig->{_propertyDefinitions}) {
my %properties;
- foreach my $definition (@{$orig->definition}) {
+ foreach my $definition (@{$orig->definition($self->session)}) {
%properties = (%properties, %{$definition->{properties}});
}
$orig->{_propertyDefinitions} = \%properties;
@@ -740,7 +740,7 @@ sub www_editOverride {
my %overrides = $self->getOverrides;
my $output = '';
my %props;
- foreach my $def (@{$self->getShortcutOriginal->definition}) {
+ foreach my $def (@{$self->getShortcutOriginal->definition($self->session)}) {
%props = (%props,%{$def->{properties}});
}
$output .= '
';
@@ -780,7 +780,7 @@ sub www_saveOverride {
my %overrides = $self->getOverrides;
my $output = '';
my %props;
- foreach my $def (@{$self->getShortcutOriginal->definition}) {
+ foreach my $def (@{$self->getShortcutOriginal->definition($self->session)}) {
%props = (%props,%{$def->{properties}});
}
my $fieldType = $props{$fieldName}{fieldType};
diff --git a/lib/WebGUI/AssetClipboard.pm b/lib/WebGUI/AssetClipboard.pm
index 0c6e60e63..989a9f694 100644
--- a/lib/WebGUI/AssetClipboard.pm
+++ b/lib/WebGUI/AssetClipboard.pm
@@ -129,7 +129,7 @@ sub getAssetsInClipboard {
assetData.title desc
");
while (my ($id, $date, $class) = $sth->array) {
- push(@assets, WebGUI::Asset->new($id,$class,$date));
+ push(@assets, WebGUI::Asset->new($self->session,$id,$class,$date));
}
$sth->finish;
return \@assets;
@@ -150,7 +150,7 @@ Alphanumeric ID tag of Asset.
sub paste {
my $self = shift;
my $assetId = shift;
- my $pastedAsset = WebGUI::Asset->newByDynamicClass($assetId);
+ my $pastedAsset = WebGUI::Asset->newByDynamicClass($self->session,$assetId);
return 0 unless ($self->get("state") eq "published");
if ($self->getId eq $pastedAsset->get("parentId") || $pastedAsset->setParent($self)) {
$pastedAsset->publish;
@@ -189,7 +189,7 @@ sub www_copyList {
my $self = shift;
return $self->session->privilege->insufficient() unless $self->canEdit;
foreach my $assetId ($self->session->request->param("assetId")) {
- my $asset = WebGUI::Asset->newByDynamicClass($assetId);
+ my $asset = WebGUI::Asset->newByDynamicClass($self->session,$assetId);
if ($asset->canEdit) {
my $newAsset = $asset->duplicate;
$newAsset->update({ title=>$newAsset->getTitle.' (copy)'});
@@ -265,7 +265,7 @@ sub www_cutList {
my $self = shift;
return $self->session->privilege->insufficient() unless $self->canEdit;
foreach my $assetId ($self->session->request->param("assetId")) {
- my $asset = WebGUI::Asset->newByDynamicClass($assetId);
+ my $asset = WebGUI::Asset->newByDynamicClass($self->session,$assetId);
if ($asset->canEdit) {
$asset->cut;
}
diff --git a/lib/WebGUI/AssetLineage.pm b/lib/WebGUI/AssetLineage.pm
index f09ef4ba6..0feda3478 100644
--- a/lib/WebGUI/AssetLineage.pm
+++ b/lib/WebGUI/AssetLineage.pm
@@ -307,7 +307,7 @@ sub getLineage {
my $cmd = "use ".$className;
eval ($cmd);
$self->session->errorHandler->fatal("Couldn't compile asset package: ".$className.". Root cause: ".$@) if ($@);
- foreach my $definition (@{$className->definition}) {
+ foreach my $definition (@{$className->definition($self->session)}) {
unless ($definition->{tableName} eq "asset") {
my $tableName = $definition->{tableName};
$tables .= " left join $tableName on assetData.assetId=".$tableName.".assetId and assetData.revisionDate=".$tableName.".revisionDate";
diff --git a/lib/WebGUI/AssetVersioning.pm b/lib/WebGUI/AssetVersioning.pm
index 4a0a54aa2..131389b8b 100644
--- a/lib/WebGUI/AssetVersioning.pm
+++ b/lib/WebGUI/AssetVersioning.pm
@@ -202,7 +202,7 @@ sub purgeRevision {
my $self = shift;
if ($self->getRevisionCount > 1) {
$self->session->db->beginTransaction;
- foreach my $definition (@{$self->definition}) {
+ foreach my $definition (@{$self->definition($self->session)}) {
$self->session->db->write("delete from ".$definition->{tableName}." where assetId=".$self->session->db->quote($self->getId)." and revisionDate=".$self->session->db->quote($self->get("revisionDate")));
}
$self->session->db->commit;
diff --git a/lib/WebGUI/Auth/LDAP.pm b/lib/WebGUI/Auth/LDAP.pm
index 01f7c1c12..571e8413b 100644
--- a/lib/WebGUI/Auth/LDAP.pm
+++ b/lib/WebGUI/Auth/LDAP.pm
@@ -418,7 +418,7 @@ sub new {
my $self = WebGUI::Auth->new($session,$authMethod,$userId,\@callable);
my $connection = $session->scratch->get("ldapConnection") || $session->setting->get("ldapConnection");
my $ldaplink = WebGUI::LDAPLink->new($session,$connection);
- $self->{_connection} = $ldaplink->get;
+ $self->{_connection} = $ldaplink->get if $ldaplink;
my $i18n = WebGUI::International->new($session, "AuthLDAP");
my %ldapStatusCode = map { $_ => $i18n->get("LDAPLink_".$_) }
(0..21, 32,33,34,36, 48..54, 64..71, 80);
diff --git a/t/User.t b/t/User.t
index b8df1ff96..bce82ed51 100644
--- a/t/User.t
+++ b/t/User.t
@@ -17,7 +17,7 @@ use WebGUI::Session;
use WebGUI::Utility;
use WebGUI::User;
-use Test::More tests => 34; # increment this value for each test you create
+use Test::More tests => 49; # increment this value for each test you create
my $session = WebGUI::Test->session;
@@ -141,6 +141,64 @@ $user = WebGUI::User->new($session);
is($user->userId, '1', 'new() -- returns visitor with no args');
$user = "";
+$user = WebGUI::User->new($session, "new", "ROYSUNIQUEUSERID000002");
+is($user->userId, "ROYSUNIQUEUSERID000002", 'new() -- override user id');
+$user->authMethod("LDAP");
+is($user->authMethod, "LDAP", 'authMethod() -- set to LDAP');
+
+#get/set karma
+my $oldKarma = $user->karma;
+$user->karma('69', 'peter gibbons', 'test karma');
+is($user->karma, $oldKarma+69, 'karma() -- get/set add amount');
+
+my ($source, $description) = $session->db->quickArray("select source, description from karmaLog where userId=".$session->db->quote($user->userId));
+
+is($source, 'peter gibbons', 'karma() -- get/set source');
+is($description, 'test karma', 'karma() -- get/set description');
+
+$oldKarma = $user->karma;
+$user->karma('-69', 'peter gibbons', 'lumberg took test karma away');
+is($user->karma, $oldKarma-69, 'karma() -- get/set subtract amount');
+
+#Let's test referringAffiliate
+$lastUpdate = time();
+$user->referringAffiliate(10);
+is($user->referringAffiliate, '10', 'referringAffiliate() -- get/set');
+is($user->lastUpdated, $lastUpdate, 'lastUpdated() -- referringAffiliate');
+
+#Let's try adding this user to some groups
+my @groups = qw|2 4|;
+$user->addToGroups(\@groups);
+
+my ($result) = $session->db->quickArray("select count(*) from groupings where groupId=".$session->db->quote('2')." and userId=".$session->db->quote($user->userId));
+ok($result, 'addToGroups() -- added to first test group');
+
+($result) = $session->db->quickArray("select count(*) from groupings where groupId=".$session->db->quote('4')." and userId=".$session->db->quote($user->userId));
+ok($result, 'addToGroups() -- added to second test group');
+
+#Let's delete this user from our test groups
+$user->deleteFromGroups(\@groups);
+
+($result) = $session->db->quickArray("select count(*) from groupings where groupId=".$session->db->quote('2')." and userId=".$session->db->quote($user->userId));
+is($result, '0', 'deleteFromGroups() -- removed from first test group');
+
+($result) = $session->db->quickArray("select count(*) from groupings where groupId=".$session->db->quote('4')." and userId=".$session->db->quote($user->userId));
+is($result, '0', 'deleteFromGroups() -- removed from second test group');
+
+#Let's delete this user
+my $userId = $user->userId;
+$user->delete;
+
+my ($count) = $session->db->quickArray("select count(*) from users where userId=".$session->db->quote($userId));
+is($count, '0', 'delete() -- users table');
+
+($count) = $session->db->quickArray("select count(*) from userProfileData where userId=".$session->db->quote($userId));
+is($count, '0', 'delete() -- userProfileData table');
+
+($count) = $session->db->quickArray("select count(*) from messageLog where userId=".$session->db->quote($userId));
+is($count, '0', 'delete() -- messageLog table');
+
+
#identifier() and uncache()
SKIP: {
skip("identifier() -- deprecated",1);