16 use \Firebase\JWT\JWT;
18 import(
'lib.pkp.classes.user.form.BaseProfileForm');
27 parent::__construct(
'user/apiProfileForm.tpl', $user);
35 $this->
setData(
'apiKeyEnabled', (
bool) $user->getData(
'apiKeyEnabled'));
42 parent::readInputData();
45 'apiKeyEnabled',
'generateApiKey',
54 public function fetch($request, $template =
null, $display =
false) {
55 $user = $request->getUser();
59 $notificationManager->createTrivialNotification(
60 $user->getId(), NOTIFICATION_TYPE_WARNING, array(
61 'contents' => __(
'user.apiKey.secretRequired'),
63 } elseif ($user->getData(
'apiKey')) {
65 $templateMgr->assign(array(
66 'apiKey' => JWT::encode($user->getData(
'apiKey'), $secret,
'HS256'),
69 return parent::fetch($request, $template, $display);
77 $user = $request->getUser();
79 $apiKeyEnabled = (bool) $this->
getData(
'apiKeyEnabled');
80 $user->setData(
'apiKeyEnabled', $apiKeyEnabled);
83 if (!$apiKeyEnabled) {
84 $user->setData(
'apiKeyEnabled',
null);
88 if ($apiKeyEnabled && !is_null($this->
getData(
'generateApiKey'))) {
91 $user->setData(
'apiKey', sha1(time()));
95 parent::execute(...$functionArgs);