13 import(
'lib.pkp.classes.plugins.GenericPlugin');
19 function register($category, $path, $mainContextId =
null) {
20 $success = parent::register($category, $path, $mainContextId);
21 if (!
Config::getVar(
'general',
'installed') || defined(
'RUNNING_UPGRADE'))
return true;
41 if (!$journal)
return false;
43 $incomingParameterName = $this->
getSetting($journal->getId(),
'incomingParameterName');
46 if ($incomingParameterName !=
'' && isset($_GET[$incomingParameterName])) {
47 $incomingKey = $_GET[$incomingParameterName];
50 $verificationUrl = $this->
getSetting($journal->getId(),
'verificationUrl');
52 curl_setopt($ch, CURLOPT_URL, $verificationUrl . urlencode($incomingKey));
53 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
54 curl_setopt($ch, CURLOPT_HEADER, 0);
55 $result = curl_exec($ch);
59 $resultRegexp = $this->
getSetting($journal->getId(),
'resultRegexp');
60 if (preg_match($resultRegexp, $result)) {
62 $_SESSION[
'subscriptionSSOTimestamp'] = time();
65 unset($_SESSION[
'subscriptionSSOTimestamp']);
82 if (in_array(
$request->getRequestedPage(), array(
'',
'index',
'search')))
return false;
84 if (
$request->getRequestedPage() ==
'issue' && count(
$request->getRequestedArgs()) != 2)
return false;
87 if (
$request->getRequestedPage() ==
'article' &&
$request->getRequestedOp() ==
'view' && count(
$request->getRequestedArgs())==1)
return false;
91 $result = isset($_SESSION[
'subscriptionSSOTimestamp']) && $_SESSION[
'subscriptionSSOTimestamp'] + ($this->
getSetting($journal->getId(),
'hoursValid') * 3600) > time();
94 $request->redirectUrl($this->
getSetting($journal->getId(),
'redirectUrl') .
'?redirectUrl=' . urlencode(
$request->getRequestUrl()));
103 import(
'lib.pkp.classes.linkAction.request.AjaxModal');
109 $router->url(
$request,
null,
null,
'manage',
null, array_merge($actionArgs, array(
'verb' =>
'settings'))),
112 __(
'manager.plugins.settings'),
116 parent::getActions(
$request, $actionArgs)
127 switch (
$request->getUserVar(
'verb')) {
129 $this->
import(
'SubscriptionSSOSettingsForm');
132 $form->readInputData();
133 if ($form->validate()) {
142 return parent::manage($args,
$request);
149 return __(
'plugins.generic.subscriptionSSO.name');
156 return __(
'plugins.generic.subscriptionSSO.description');