-
-
Notifications
You must be signed in to change notification settings - Fork 813
/
GetChecksum.php
55 lines (47 loc) · 1.51 KB
/
GetChecksum.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
/*
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC. All rights reserved. |
| |
| This work is published under the GNU AGPLv3 license with some |
| permitted exceptions and without any warranty. For full license |
| and copyright information, see https://civicrm.org/licensing |
+--------------------------------------------------------------------+
*/
namespace Civi\Api4\Action\Contact;
use Civi\Api4\Generic\Result;
/**
* Generate a security checksum for anonymous access to CiviCRM.
*
* @method $this setContactId(int $cid) Set contact ID (required)
* @method int getContactId() Get contact ID param
* @method $this setTtl(int $ttl) Set TTL param
* @method int getTtl() Get TTL param
*/
class GetChecksum extends \Civi\Api4\Generic\AbstractAction {
/**
* ID of contact
*
* @var int
* @required
*/
protected $contactId;
/**
* Expiration time (hours). Defaults to 168 (24 * [7 or value of checksum_timeout system setting]).
*
* Set to 0 for infinite.
*
* @var int
*/
protected $ttl = NULL;
/**
* @param \Civi\Api4\Generic\Result $result
*/
public function _run(Result $result) {
$ttl = ($this->ttl === 0 || $this->ttl === '0') ? 'inf' : $this->ttl;
$result[] = [
'id' => $this->contactId,
'checksum' => \CRM_Contact_BAO_Contact_Utils::generateChecksum($this->contactId, NULL, $ttl),
];
}
}