diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index 5720006d4..06608835a 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -294,20 +294,21 @@ sub getSubEvents { my $self = shift; my $eventId = shift; my @subEvents; + #Get a list of all unique prerequisiteIds where requiredProductId matches eventId. The productId + #associated with the prerequisite entry is the one that requires the event we're listing. my @prerequisites = $self->session->db->buildArray(" - select prerequisiteId from EventManagementSystem_prerequisites - where productId=".$self->session->db->quote($eventId)); + select distinct(prerequisiteId) from EventManagementSystem_prerequisiteEvents + where requiredProductId=".$self->session->db->quote($eventId)); print "
".Dumper(@prerequisites).""; foreach my $prerequisite (@prerequisites) { my $sth = $self->session->db->read(" select p.productId, p.title, pr.operator - from products as p, EventManagementSystem_prerequisites as pr, EventManagementSystem_prerequisiteEvents as pe + from products as p, EventManagementSystem_prerequisites as pr where - p.productId = pe.requiredProductId and - pr.prerequisiteId = pe.prerequisiteId and + p.productId = pr.productId and pr.prerequisiteId =".$self->session->db->quote($prerequisite)); my %eventList; my $operator; @@ -841,7 +842,7 @@ sub view { where p.productId = e.productId and approved=1 and e.assetId =".$self->session->db->quote($self->get("assetId"))." - and p.productId not in (select distinct(requiredProductId) from EventManagementSystem_prerequisiteEvents)"; + and p.productId not in (select distinct(productId) from EventManagementSystem_prerequisites)"; my $p = WebGUI::Paginator->new($self->session,$self->getUrl,$self->get("paginateAfter")); $p->setDataByQuery($sql); diff --git a/lib/WebGUI/Auth.pm b/lib/WebGUI/Auth.pm index 80730299f..6af91d23e 100644 --- a/lib/WebGUI/Auth.pm +++ b/lib/WebGUI/Auth.pm @@ -624,7 +624,9 @@ sub new { $self->{_session} = shift; $self->{authMethod} = shift; my $userId = shift || $self->{_session}->user->userId; - $self->{user} = $self->{_session}->user; + # Can't do this... if you're updating the account of a user that's not you, this will not work + #$self->{user} = $self->{_session}->user; + $self->{user} = WebGUI::User->new($self->{_session}, $userId); $self->{error} = ""; $self->{profile} = (); $self->{warning} = ""; diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm index c387f72e6..d43ebe076 100644 --- a/lib/WebGUI/Auth/WebGUI.pm +++ b/lib/WebGUI/Auth/WebGUI.pm @@ -333,8 +333,9 @@ sub editUserForm { sub editUserFormSave { my $self = shift; + my $userId = $self->session->form->get("uid"); my $properties; - my $userData = $self->getParams; + my $userData = $self->getParams($userId); unless (!$self->session->form->process('authWebGUI.identifier') || $self->session->form->process('authWebGUI.identifier') eq "password") { $properties->{identifier} = Digest::MD5::md5_base64($self->session->form->process('authWebGUI.identifier')); if($userData->{identifier} ne $properties->{identifier}){