A pending shares overview

Now that we accept shares we should show an overview of shares that are
pending. This first part is the small API to get a list of the currently
pending shares.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2020-01-07 08:53:33 +01:00
parent 4c841559e1
commit fbed6a3416
No known key found for this signature in database
GPG Key ID: F941078878347C0C
2 changed files with 35 additions and 0 deletions

View File

@ -75,6 +75,11 @@ return [
'url' => '/api/v1/shares', 'url' => '/api/v1/shares',
'verb' => 'POST', 'verb' => 'POST',
], ],
[
'name' => 'ShareAPI#pendingShares',
'url' => '/api/v1/shares/pending',
'verb' => 'GET',
],
[ [
'name' => 'ShareAPI#getShare', 'name' => 'ShareAPI#getShare',
'url' => '/api/v1/shares/{id}', 'url' => '/api/v1/shares/{id}',

View File

@ -1079,6 +1079,36 @@ class ShareAPIController extends OCSController {
return new DataResponse($this->formatShare($share)); return new DataResponse($this->formatShare($share));
} }
/**
* @NoAdminRequired
*/
public function pendingShares(): DataResponse {
$pendingShares = [];
$shareTypes = [
IShare::TYPE_USER,
IShare::TYPE_GROUP
];
foreach ($shareTypes as $shareType) {
$shares = $this->shareManager->getSharedWith($this->currentUser, $shareType, null, -1, 0);
foreach ($shares as $share) {
if ($share->getStatus() === IShare::STATUS_PENDING || $share->getStatus() === IShare::STATUS_REJECTED) {
$pendingShares[] = $share;
}
}
}
$result = array_map(function (IShare $share) {
return [
'id' => $share->getFullId(),
];
}, $pendingShares);
return new DataResponse($result);
}
/** /**
* @NoAdminRequired * @NoAdminRequired
* *