forked from lukebeer/ocip-scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuserSearch.php
executable file
·76 lines (75 loc) · 3.3 KB
/
userSearch.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
/*
Filename: userSearch.php
Description: User search utility based on lastname, firstname or DN. Spits out JSON, useful cli alias.
Usage: php findUser.php lastname bloggs
Output:
{
"results": [
{
"User ID": "[email protected]",
"Group ID": "Group-1",
"ServiceProviderID": "Enterprise-1",
"Last Name": "Bloggs",
"First Name": "Joe",
"Department": [
],
"Phone Number": "+44-1234567890",
"Phone Number Activated": "true",
"Email Address": "[email protected]",
"In Trunk Group?": "false"
}
],
"errors": null
}
*/
header('Content-type: application/json');
require_once 'config.php';
ini_set("display_errors", 0);
Factory::getOCISchemaSystem();
Factory::getOCISchemaSearchCriteria();
$client = CoreFactory::getOCIClient(OCIP_HOST);
$client->login(OCIP_USER, OCIP_PASS);
$results = [];
switch(@$argv[1]) {
case 'lastname':
$lastName = OCIBuilder::buildSearch(OCISchemaSearchCriteria::SearchCriteriaUserLastName(OCISearchModes::CONTAINS, $argv[2], true));
$client->send(OCISchemaUser::UserGetListInSystemRequest(null, $lastName));
break;
case 'firstname':
$firstName = OCIBuilder::buildSearch(OCISchemaSearchCriteria::SearchCriteriaUserFirstName(OCISearchModes::CONTAINS, $argv[2], true));
$client->send(OCISchemaUser::UserGetListInSystemRequest(null, null, $firstName));
break;
case 'dn':
$dn = OCIBuilder::buildSearch(OCISchemaSearchCriteria::searchCriteriaDn(OCISearchModes::CONTAINS, $argv[2], true));
$client->send(OCISchemaUser::UserGetListInSystemRequest(null, null, null, $dn));
break;
case 'id':
$client->send(OCISchemaUser::UserGetRequest17sp4($argv[2]));
break;
case 'uri':
$registrationURI = OCIBuilder::buildSearch(OCISchemaSearchCriteria::SearchCriteriaRegistrationURI(OCISearchModes::CONTAINS, $argv[2], true));
$client->send(OCISchemaSystem::SystemGetRegistrationContactListRequest(null, null, null, $registrationURI));
break;
default:
die("Provide a search criteria, eg: 'php findUser.php lastname bloggs'\n");
}
if ($response = $client->getResponse()) {
if (property_exists($response, 'userTable')) {
if (array_key_exists('row', $response->userTable)) {
foreach($response->userTable['row'] as $item) {
$item = (array_key_exists('col', $item)) ? $item['col'] : $item;
$results[] = ['User ID' => $item[0], 'Group ID' => $item[1], 'ServiceProviderID' => $item[2], 'Last Name' => $item[3],
'First Name' => $item[4], 'Department' => $item[5], 'Phone Number' => $item[6], 'Phone Number Activated' => $item[7],
'Email Address' => $item[8], 'In Trunk Group?' => $item[11]
];
}
} else {
die("No results\n");
}
} else {
$results = $response;
}
}
$data = json_encode(['results' => $results, 'errors' => $errorControl->getErrors()], JSON_PRETTY_PRINT);
echo $data;