Add lib/userinfo.php
This commit is contained in:
		
							parent
							
								
									ea71b78169
								
							
						
					
					
						commit
						2f31066a0c
					
				
							
								
								
									
										122
									
								
								lib/userinfo.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								lib/userinfo.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,122 @@ | ||||
| <?php | ||||
| /** | ||||
|  * Get user info for the given username. | ||||
|  * @param int $u username | ||||
|  * @return [string] Array of [uid, username, name] | ||||
|  */ | ||||
| function getUserByUsername($u) { | ||||
|     $client = new GuzzleHttp\Client(); | ||||
| 
 | ||||
|     $response = $client | ||||
|             ->request('POST', PORTAL_API, [ | ||||
|         'form_params' => [ | ||||
|             'key' => PORTAL_KEY, | ||||
|             'action' => "userinfo", | ||||
|             'username' => $u | ||||
|         ] | ||||
|     ]); | ||||
| 
 | ||||
|     if ($response->getStatusCode() > 299) { | ||||
|         sendError("Login server error: " . $response->getBody()); | ||||
|     } | ||||
| 
 | ||||
|     $resp = json_decode($response->getBody(), TRUE); | ||||
|     if ($resp['status'] == "OK") { | ||||
|         return $resp['data']; | ||||
|     } else { | ||||
|         // this shouldn't happen, but in case it does just fake it.
 | ||||
|         return ["name" => $u, "username" => $u, "uid" => $u]; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Get user info for the given UID. | ||||
|  * @param int $u user ID | ||||
|  * @return [string] Array of [uid, username, name] | ||||
|  */ | ||||
| function getUserByID($u) { | ||||
|     $client = new GuzzleHttp\Client(); | ||||
| 
 | ||||
|     $response = $client | ||||
|             ->request('POST', PORTAL_API, [ | ||||
|         'form_params' => [ | ||||
|             'key' => PORTAL_KEY, | ||||
|             'action' => "userinfo", | ||||
|             'uid' => $u | ||||
|         ] | ||||
|     ]); | ||||
| 
 | ||||
|     if ($response->getStatusCode() > 299) { | ||||
|         sendError("Login server error: " . $response->getBody()); | ||||
|     } | ||||
| 
 | ||||
|     $resp = json_decode($response->getBody(), TRUE); | ||||
|     if ($resp['status'] == "OK") { | ||||
|         return $resp['data']; | ||||
|     } else { | ||||
|         // this shouldn't happen, but in case it does just fake it.
 | ||||
|         return ["name" => $u, "username" => $u, "uid" => $u]; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Check if the first UID is a manager of the second UID. | ||||
|  * @param int $m Manager UID | ||||
|  * @param int $e Employee UID | ||||
|  * @return boolean | ||||
|  */ | ||||
| function isManagerOf($m, $e) { | ||||
|     $client = new GuzzleHttp\Client(); | ||||
| 
 | ||||
|     $response = $client | ||||
|             ->request('POST', PORTAL_API, [ | ||||
|         'form_params' => [ | ||||
|             'key' => PORTAL_KEY, | ||||
|             'action' => "ismanagerof", | ||||
|             'manager' => $m, | ||||
|             'employee' => $e, | ||||
|             'uid' => 1 | ||||
|         ] | ||||
|     ]); | ||||
| 
 | ||||
|     if ($response->getStatusCode() > 299) { | ||||
|         sendError("Login server error: " . $response->getBody()); | ||||
|     } | ||||
| 
 | ||||
|     $resp = json_decode($response->getBody(), TRUE); | ||||
|     if ($resp['status'] == "OK") { | ||||
|         return $resp['managerof']; | ||||
|     } else { | ||||
|         // this shouldn't happen, but in case it does just fake it.
 | ||||
|         return ["name" => $u, "username" => $u, "uid" => $u]; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Get an array of UIDs the given UID is a manager of. | ||||
|  * @param int $manageruid The UID of the manager to find employees for. | ||||
|  * @return [int] | ||||
|  */ | ||||
| function getManagedUIDs($manageruid) { | ||||
|     $client = new GuzzleHttp\Client(); | ||||
| 
 | ||||
|     $response = $client | ||||
|             ->request('POST', PORTAL_API, [ | ||||
|         'form_params' => [ | ||||
|             'key' => PORTAL_KEY, | ||||
|             'action' => "getmanaged", | ||||
|             'uid' => $manageruid | ||||
|         ] | ||||
|     ]); | ||||
| 
 | ||||
|     if ($response->getStatusCode() > 299) { | ||||
|         sendError("Login server error: " . $response->getBody()); | ||||
|     } | ||||
| 
 | ||||
|     $resp = json_decode($response->getBody(), TRUE); | ||||
|     if ($resp['status'] == "OK") { | ||||
|         return $resp['employees']; | ||||
|     } else { | ||||
|         return []; | ||||
|     } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user