Create key requests for backend to query.
This commit is contained in:
@@ -6,9 +6,37 @@
|
||||
|
||||
class RequestManager {
|
||||
|
||||
public function __construct(
|
||||
|
||||
) {
|
||||
private $requestDir;
|
||||
|
||||
public function __construct(
|
||||
$dirName = '/requests'
|
||||
) {
|
||||
$this->requestDir = __DIR__ . $dirName;
|
||||
}
|
||||
}
|
||||
|
||||
public function generateRequest($owner, $key) {
|
||||
if(!isset($owner) || !isset($key))
|
||||
return ['error'=>'Request could not be processed', 'status'=> 400];
|
||||
$requester = $_SERVER['PHP_AUTH_USER'];
|
||||
if($owner == $requester)
|
||||
return ['error'=>'You do not need to request access to your own keys', 'status'=> 400];
|
||||
$requestFileName = $this->requestDir . '/' . $owner . '.json';
|
||||
$openRequests = new stdClass();
|
||||
if(file_exists($requestFileName))
|
||||
$openRequests = json_decode(file_get_contents($requestFileName));
|
||||
foreach($openRequests->{$requester} as $request) {
|
||||
if($request->requested_key == $key)
|
||||
return ['error'=>'You already requested that key', 'status'=>400];
|
||||
}
|
||||
$newData = new StdClass();
|
||||
$newData->requested_key = $key;
|
||||
$newData->created = new DateTime()->format('c');
|
||||
if(!isset($openRequests->{$requester}));
|
||||
$openRequests->{$requester} = array();
|
||||
$dataIndex = count($openRequests->{$requester});
|
||||
$openRequests->{$requester}[$dataIndex] = $newData;
|
||||
if(!file_put_contents($requestFileName, json_encode($openRequests, JSON_PRETTY_PRINT)))
|
||||
return['error'=>'request cannot be stored on the server', 'status'=>400];
|
||||
return ['success'=>'Your request was registered successfully', 'status'=>200];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user