Skip to content

Commit b3e5f32

Browse files
authored
Merge pull request #3 from ebsco/Claus_Updates
Minor Bug Fixes / Session Handling Improved
2 parents 253f824 + a045c27 commit b3e5f32

5 files changed

Lines changed: 44 additions & 24 deletions

File tree

app/views/results.html.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
<div class="autosuggestedterms">Did you mean:
9595
<?php
9696
foreach($results['autoSuggest'] as $suggestion){
97+
$as = 0;
9798
$query = $_REQUEST;
9899
$query['query'] = (string)$suggestion;
99100
$newQuery = http_build_query($query);
@@ -461,7 +462,7 @@
461462
}
462463
}
463464
if(!empty($rsData)){
464-
buildResearchStarterPlacard($rsData, $empCount);
465+
buildResearchStarterPlacard($rsData, $empCount, $fieldCode, $encodedHighLigtTerm, $encodedSearchTerm);
465466
}
466467
if(!empty($empData)){
467468
buildExactMatchPlacard($empData, $rsCount);
@@ -769,7 +770,7 @@
769770

770771
<?php
771772

772-
function buildResearchStarterPlacard($relRec, $count){
773+
function buildResearchStarterPlacard($relRec, $count, $fieldCode, $encodedHighLigtTerm, $encodedSearchTerm){
773774
$rs = $relRec['records'][0];
774775

775776
$rsHtml ='<div class="related-content bluebg" id="related-content">';
@@ -821,6 +822,9 @@ function buildExactMatchPlacard($relRec, $count){
821822
if($count > 0){
822823
$hideempplacard = 'style="display:none"';
823824
}
825+
else{
826+
$hideempplacard = '';
827+
}
824828
$empHtml = '<div id="emp_placard" class="emp_placard yellowbg" '.$hideempplacard.'>';
825829
$empHtml .= '<div class="emp_label">'.$relRec['Label'].'</div>';
826830
foreach($relRec['records'] as $rec){

rest/EBSCOAPI.php

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ protected function request($action, $params = null, $attempts = 3)
8787
try {
8888

8989
$authenticationToken = $this->getAuthToken();
90-
$sessionToken = $this ->getSessionToken($authenticationToken);
90+
$sessionToken = $this ->getSessionToken($authenticationToken, 'n');
9191

9292

9393
if(empty($authenticationToken)){
@@ -115,7 +115,7 @@ protected function request($action, $params = null, $attempts = 3)
115115
switch ($code) {
116116
case EBSCOConnector::EDS_AUTH_TOKEN_INVALID:
117117
$authenticationToken = $this->getAuthToken();
118-
$sessionToken = $this ->getSessionToken($authenticationToken);
118+
$sessionToken = $this ->getSessionToken($authenticationToken, 'n');
119119
$headers = array(
120120
'x-authenticationToken: ' . $authenticationToken,
121121
'x-sessionToken: ' . $sessionToken
@@ -224,24 +224,42 @@ public function apiAuthenticationToken()
224224
*/
225225
public function getSessionToken($authenToken, $guest='n'){
226226
$token = '';
227-
$configFile="Config.xml";
228-
227+
$configFile="Config.xml";
228+
229+
if(isset($_SESSION['sessionToken']) && !empty($_SESSION['sessionToken']) && isset($_SESSION['sessionTimeoutValue']) && ((int)$_SESSION['sessionTimeoutValue'] > (int)time()) && isset($_SESSION['guest']) && ($guest == $_SESSION['guest'])){
230+
// if a sessionToken exists
231+
// AND the sessionTimeout value is greater than current time()
232+
// AND guest status has not change
233+
// return the token that is part of the current SESSION and write forward the sessionTimeoutValue
234+
235+
$_SESSION['sessionTimeoutValue'] = time()+($_SESSION['sessionTimeout']*0.9);
236+
$token = $_SESSION['sessionToken'];
237+
}
238+
else{
229239
// Check user's login status
230-
if(isset($_SESSION['login']) or (validAuthIP($configFile)==true)){
231-
if (($guest=='n') or (validAuthIP($configFile)==true)){
232-
$sessionToken = $this->apiSessionToken($authenToken, 'n');
233-
$_SESSION['sessionToken']=$sessionToken;
234-
}
235-
$token = $_SESSION['sessionToken'];
240+
if(isset($_SESSION['login']) or (validAuthIP($configFile)==true)){
241+
if (($guest=='n') or (validAuthIP($configFile)==true)){
242+
$sessionToken = $this->apiSessionToken($authenToken, 'n');
243+
244+
//ensure your sessionToken, GuestStatus and SessionTimeoutValue is set
245+
$_SESSION['sessionToken']=$sessionToken;
246+
$_SESSION['guest'] = $guest;
247+
$_SESSION['sessionTimeoutValue'] = time()+($_SESSION['sessionTimeout']*0.9);
248+
}
249+
$token = $_SESSION['sessionToken'];
250+
}
251+
else{
252+
$sessionToken = $this->apiSessionToken($authenToken, 'y');
253+
$_SESSION['sessionToken']=$sessionToken;
254+
$token = $_SESSION['sessionToken'];
255+
//ensure your sessionToken, GuestStatus and SessionTimeoutValue is set
256+
257+
$_SESSION['guest'] = $guest;
258+
$_SESSION['sessionTimeoutValue'] = time()+($_SESSION['sessionTimeout']*0.9);
259+
// TODO: check IP validation
260+
}
236261
}
237-
else
238-
{
239-
$sessionToken = $this->apiSessionToken($authenToken, 'y');
240-
$_SESSION['sessionToken']=$sessionToken;
241-
242-
$token = $_SESSION['sessionToken'];
243-
// TODO: check IP validation
244-
}
262+
245263
return $token;
246264
}
247265

@@ -293,7 +311,6 @@ public function apiEndSessionToken($authenToken, $sessionToken){
293311
* @access public
294312
*/
295313
public function apiSearch($params) {
296-
297314
$results = $this->request('Search', $params);
298315
return $results;
299316
}
@@ -377,7 +394,6 @@ public function getInfo()
377394
public function apiInfo(){
378395

379396
$response = $this->request('Info');
380-
381397
$Info = array(
382398
'Info' => $response,
383399
'timestamp'=>time()

rest/EBSCOConnector.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,7 @@ public function requestInfo($params,$headers)
283283
$url = self::$end_point . '/Info';
284284

285285
$response = $this->request($url, $params, $headers);
286+
$_SESSION['sessionTimeout'] = (int)$response->ApplicationSettings->SessionTimeout;
286287
return $response;
287288
}
288289

rest/EBSCOResponse.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ private function buildSearch()
182182
}
183183

184184

185-
if($this->response->SearchResult->RelatedContent){
185+
if($this->response->SearchResult->RelatedContent->RelatedRecords){
186186

187187
$relatedRecsWithAction = $this->response->SearchResult->RelatedContent->RelatedRecords;
188188
foreach($relatedRecsWithAction->RelatedRecord as $relRecs){

results.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040

4141
$results = $_SESSION['results'];
4242
$queryStringUrl = $results['queryString'];
43-
4443
$action = isset($_REQUEST['action'])?$_REQUEST['action']:'';
4544
$actions = array();
4645
if(!empty($action)){

0 commit comments

Comments
 (0)