Merge pull request #14662 from eileenmcnaughton/activity_pdf_71
[civicrm-core.git] / CRM / Bridge / OG / Utils.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | Copyright CiviCRM LLC. All rights reserved. |
5 | |
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
9 +--------------------------------------------------------------------+
10 */
11
12 /**
13 *
14 * @package CRM
15 * @copyright CiviCRM LLC https://civicrm.org/licensing
16 */
17 class CRM_Bridge_OG_Utils {
18 const aclEnabled = 1, syncFromCiviCRM = 1;
19
20 /**
21 * @return int
22 */
23 public static function aclEnabled() {
24 return self::aclEnabled;
25 }
26
27 /**
28 * Switch to stop synchronization from CiviCRM.
29 * This was always false before, and is always true
30 * now. Most likely, this needs to be a setting.
31 */
32 public static function syncFromCiviCRM() {
33 // make sure that acls are not enabled
34 //RMT -- the following makes no f**king sense...
35 //return ! self::aclEnabled & self::syncFromCiviCRM;
36 return TRUE;
37 }
38
39 /**
40 * @param int $ogID
41 *
42 * @return string
43 */
44 public static function ogSyncName($ogID) {
45 return "OG Sync Group :{$ogID}:";
46 }
47
48 /**
49 * @param int $ogID
50 *
51 * @return string
52 */
53 public static function ogSyncACLName($ogID) {
54 return "OG Sync Group ACL :{$ogID}:";
55 }
56
57 /**
58 * @param int $groupID
59 * @param bool $abort
60 *
61 * @return int|null|string
62 * @throws Exception
63 */
64 public static function ogID($groupID, $abort = TRUE) {
65 $source = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group',
66 $groupID,
67 'source'
68 );
69
70 if (strpos($source, 'OG Sync Group') !== FALSE) {
71 preg_match('/:(\d+):$/', $source, $matches);
72 if (is_numeric($matches[1])) {
73 return $matches[1];
74 }
75 }
76 if ($abort) {
77 CRM_Core_Error::fatal();
78 }
79 return NULL;
80 }
81
82 /**
83 * @param int $ufID
84 *
85 * @return int
86 * @throws Exception
87 */
88 public static function contactID($ufID) {
89 $contactID = CRM_Core_BAO_UFMatch::getContactId($ufID);
90 if ($contactID) {
91 return $contactID;
92 }
93 // else synchronize contact for this user
94
95 $account = user_load($ufID);
96
97 CRM_Core_BAO_UFMatch::synchronizeUFMatch($account, $ufID, $account->mail, 'Drupal');
98 $contactID = CRM_Core_BAO_UFMatch::getContactId($ufID);
99 if (!$contactID) {
100 CRM_Core_Error::fatal();
101 }
102 return $contactID;
103 }
104
105 /**
106 * @param $source
107 * @param null $title
108 * @param bool $abort
109 *
110 * @return null|string
111 * @throws Exception
112 */
113 public static function groupID($source, $title = NULL, $abort = FALSE) {
114 $query = "
115 SELECT id
116 FROM civicrm_group
117 WHERE source = %1";
118 $params = [1 => [$source, 'String']];
119
120 if ($title) {
121 $query .= " OR title = %2";
122 $params[2] = [$title, 'String'];
123 }
124
125 $groupID = CRM_Core_DAO::singleValueQuery($query, $params);
126 if ($abort &&
127 !$groupID
128 ) {
129 CRM_Core_Error::fatal();
130 }
131
132 return $groupID;
133 }
134
135 }