gnumoksha /
php-freeipa
| 1 | <?php |
||
| 2 | /** |
||
| 3 | FreeIPA library for PHP |
||
| 4 | Copyright (C) 2015 Tobias Sette <[email protected]> |
||
| 5 | |||
| 6 | This program is free software: you can redistribute it and/or modify |
||
| 7 | it under the terms of the GNU Lesser General Public License as published by |
||
| 8 | the Free Software Foundation, either version 3 of the License, or |
||
| 9 | (at your option) any later version. |
||
| 10 | |||
| 11 | This program is distributed in the hope that it will be useful, |
||
| 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
| 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
| 14 | GNU Lesser General Public License for more details. |
||
| 15 | |||
| 16 | You should have received a copy of the GNU Lesser General Public License |
||
| 17 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
||
| 18 | */ |
||
| 19 | |||
| 20 | /** |
||
| 21 | * This file contains examples of utilization of this library |
||
| 22 | */ |
||
| 23 | |||
| 24 | ini_set( 'display_errors', 1); |
||
| 25 | ini_set( 'track_errors', 1); |
||
| 26 | ini_set( 'html_errors', 1); |
||
| 27 | error_reporting( E_ALL ); |
||
| 28 | |||
| 29 | require_once( 'functions_utils.php' ); |
||
| 30 | |||
| 31 | $host = 'ipa.demo1.freeipa.org'; |
||
| 32 | // The certificate can be obtained in https://$host/ipa/config/ca.crt |
||
| 33 | $certificate = __DIR__ . "/../certs/ipa.demo1.freeipa.org_ca.crt"; |
||
| 34 | $user = 'admin'; |
||
| 35 | $password = 'Secret123'; |
||
| 36 | $search = 'test'; |
||
| 37 | $random = rand(1, 9999); |
||
| 38 | |||
| 39 | require_once('../bootstrap.php'); |
||
| 40 | try { |
||
| 41 | $ipa = new \FreeIPA\APIAccess\Main($host, $certificate); |
||
|
0 ignored issues
–
show
|
|||
| 42 | //$ipa->connection($host, $certificate); |
||
| 43 | } catch (Exception $e) { |
||
| 44 | _print("[instance] Exception. Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 45 | die(); |
||
| 46 | } |
||
| 47 | |||
| 48 | // If you wish to force the use of one specific version of API (for example: |
||
| 49 | // after make tests in the code and define that he does not work with different |
||
| 50 | // versions). |
||
| 51 | //$ipa->connection()->setAPIVersion('2.112'); |
||
| 52 | |||
| 53 | // Make authentication |
||
| 54 | try { |
||
| 55 | $ret_aut = $ipa->connection()->authenticate($user, $password); |
||
| 56 | if (TRUE === $ret_aut) { // user is authenticate |
||
| 57 | _print('Authentication successful'); |
||
| 58 | } else { |
||
| 59 | $auth_info = $ipa->connection()->getAuthenticationInfo(); |
||
| 60 | var_dump($auth_info); |
||
| 61 | // For more details: |
||
| 62 | //$ret_curl = $ipa->connection()->getCurlError(); |
||
| 63 | //print "User is not authenticated. Return is: <br/>" . PHP_EOL; |
||
| 64 | //print "cURL: " . $ret_curl[0] . " (" . $ret_curl[1] . ")<br/>" . PHP_EOL; |
||
| 65 | //print "cURL string: " . $ipa->connection()->getCurlReturn() . "<br/>\n"; |
||
| 66 | die(); |
||
| 67 | } |
||
| 68 | } catch (Exception $e) { |
||
| 69 | _print("[login] Exception. Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 70 | die(); |
||
| 71 | } |
||
| 72 | |||
| 73 | |||
| 74 | // Make a connection test with the server |
||
| 75 | _print('Ping'); |
||
| 76 | try { |
||
| 77 | $ret_ping = $ipa->connection()->ping(); |
||
| 78 | if ($ret_ping) { |
||
| 79 | _print('Done!'); |
||
| 80 | } else { |
||
| 81 | _print('Error in ping!'); |
||
| 82 | } |
||
| 83 | } catch (Exception $e) { |
||
| 84 | _print("[ping] Exception. Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 85 | die(); |
||
| 86 | } |
||
| 87 | |||
| 88 | |||
| 89 | // Get User information |
||
| 90 | _print("Showing o user \"$user\""); |
||
| 91 | try { |
||
| 92 | $ret_user = $ipa->user()->get($user); |
||
| 93 | if (TRUE == $ret_user) { |
||
| 94 | _print('User found'); |
||
| 95 | var_dump($ret_user); |
||
| 96 | } else { |
||
| 97 | _print("User $user not found"); |
||
| 98 | } |
||
| 99 | } catch (Exception $e) { |
||
| 100 | _print("Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 101 | die(); |
||
| 102 | } |
||
| 103 | |||
| 104 | |||
| 105 | // Searching a user |
||
| 106 | _print("Searching users with login/name contains contenham \"$search\""); |
||
| 107 | try { |
||
| 108 | $ret_search_users = $ipa->user()->find(array($search)); |
||
| 109 | if ($ret_search_users) { |
||
| 110 | $t = count($ret_search_users); |
||
| 111 | print "Found $t usuários. Names: "; |
||
| 112 | for ($i = 0; $i < $t; $i++) { |
||
| 113 | print $ret_search_users[$i]->uid[0] . " | "; |
||
| 114 | } |
||
| 115 | _print(); |
||
| 116 | } else { |
||
| 117 | _print('No users found'); |
||
| 118 | } |
||
| 119 | } catch (Exception $e) { |
||
| 120 | _print("[searching user] Exception. Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 121 | die(); |
||
| 122 | } |
||
| 123 | |||
| 124 | |||
| 125 | // Procura um user atraves de um campo identificador |
||
| 126 | // See documentarion of method \FreeIPA\APIAccess\User->findBy() ! |
||
| 127 | _print("Searching for users with login \"$search\""); |
||
| 128 | try { |
||
| 129 | $search_user_by = $ipa->user()->findBy('uid', 'admin'); // login |
||
| 130 | //$search_user_by = $ipa->user()->findBy('mail', '[email protected]'); // email |
||
| 131 | //$search_user_by = $ipa->user()->findBy('givenname', $search); // first name |
||
| 132 | //$search_user_by = $ipa->user()->findBy('cn', 'Administrator'); // full name |
||
| 133 | //$search_user_by = $ipa->user()->findBy('in_group', 'admins'); // user in group |
||
| 134 | if ($search_user_by) { |
||
| 135 | _print('Users found'); |
||
| 136 | var_dump($search_user_by); |
||
| 137 | } else { |
||
| 138 | _print('No users found'); |
||
| 139 | } |
||
| 140 | } catch (\Exception $e) { |
||
| 141 | _print("[search user by] Exception. Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 142 | _print("Json request is {$ipa->connection()->getJsonRequest()}"); |
||
| 143 | _print("Json response is {$ipa->connection()->getJsonResponse()}"); |
||
| 144 | die(); |
||
| 145 | } |
||
| 146 | |||
| 147 | |||
| 148 | // Insert a new user |
||
| 149 | $new_user_data = array( |
||
| 150 | 'givenname' => 'Richardi', |
||
| 151 | 'sn' => 'Stallman', |
||
| 152 | 'uid' => "stallman$random", |
||
| 153 | 'mail' => "[email protected]", |
||
| 154 | 'userpassword' => $password, |
||
| 155 | ); |
||
| 156 | _print("Adding new user {$new_user_data['uid']} whith password \"$password\""); |
||
| 157 | try { |
||
| 158 | $add_user = $ipa->user()->add($new_user_data); |
||
| 159 | if ($add_user) { |
||
| 160 | _print('User added'); |
||
| 161 | } else { |
||
| 162 | _print('Error while adding user'); |
||
| 163 | } |
||
| 164 | } catch (\Exception $e) { |
||
| 165 | _print("[insert new user] Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 166 | die(); |
||
| 167 | } |
||
| 168 | |||
| 169 | |||
| 170 | // Changes the previously created user |
||
| 171 | $modify_user_data = array( |
||
| 172 | 'givenname' => 'Richard', |
||
| 173 | ); |
||
| 174 | _print("Modifying the user {$new_user_data['uid']}"); |
||
| 175 | try { |
||
| 176 | $modify_user = $ipa->user()->modify($new_user_data['uid'], $modify_user_data); |
||
| 177 | if ($modify_user) { |
||
| 178 | _print('User modified'); |
||
| 179 | } else { |
||
| 180 | _print('Error while modifying user'); |
||
| 181 | } |
||
| 182 | } catch (\Exception $e) { |
||
| 183 | _print("[modifying user] Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 184 | die(); |
||
| 185 | } |
||
| 186 | |||
| 187 | |||
| 188 | // Change the password for the previously created user |
||
| 189 | $data_change_pass = array( |
||
| 190 | 'userpassword' => 'linus123', |
||
| 191 | ); |
||
| 192 | _print("Changing the password for user {$new_user_data['uid']} to {$data_change_pass['userpassword']}"); |
||
| 193 | try { |
||
| 194 | $change_pass = $ipa->user()->modify($new_user_data['uid'], $data_change_pass); |
||
| 195 | if ($change_pass) { |
||
| 196 | _print('Password changed'); |
||
| 197 | } else { |
||
| 198 | _print('Error while changing the password'); |
||
| 199 | } |
||
| 200 | } catch (\Exception $e) { |
||
| 201 | _print("[change password] Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 202 | die(); |
||
| 203 | } |
||
| 204 | |||
| 205 | |||
| 206 | // Add group |
||
| 207 | _print("Add group \"group$random\""); |
||
| 208 | try { |
||
| 209 | $add_group = $ipa->group()->add("group$random", "group$random description"); |
||
| 210 | if ($add_group) { |
||
| 211 | _print('Group added'); |
||
| 212 | } else { |
||
| 213 | _print('Error while adding a group'); |
||
| 214 | } |
||
| 215 | } catch (\Exception $e) { |
||
| 216 | _print("[add group] Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 217 | die(); |
||
| 218 | } |
||
| 219 | |||
| 220 | |||
| 221 | // Add user to group |
||
| 222 | _print("Add \"$user\" to group \"group$random\""); |
||
| 223 | try { |
||
| 224 | $add_user_group = $ipa->group()->addMember("group$random", $user); |
||
| 225 | if ($add_group) { |
||
| 226 | _print('User added'); |
||
| 227 | var_dump($add_user_group); |
||
| 228 | } else { |
||
| 229 | _print('Error while adding user to group'); |
||
| 230 | } |
||
| 231 | } catch (\Exception $e) { |
||
| 232 | _print("[add user to group] Message: {$e->getMessage()} Code: {$e->getCode()}"); |
||
| 233 | die(); |
||
| 234 | } |
||
| 235 | |||
| 236 | |||
| 237 | _print('DONE'); |
||
| 238 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths