Beispiel #1
0
<?php

//
// Check for existing groups, make sure they have the right permissions,
// and delete any others
//
require_once __DIR__ . '/api3.inc.php';
$response = API3::superGet("users/" . $config['userID'] . "/groups");
$groups = API3::getJSONFromResponse($response);
$config['ownedPublicGroupID'] = false;
$config['ownedPublicNoAnonymousGroupID'] = false;
$toDelete = [];
foreach ($groups as $group) {
    $data = $group['data'];
    $id = $data['id'];
    $type = $data['type'];
    $owner = $data['owner'];
    $libraryReading = $data['libraryReading'];
    if ($type == 'Private') {
        continue;
    }
    if (!$config['ownedPublicGroupID'] && $type == 'PublicOpen' && $owner == $config['userID'] && $libraryReading == 'all') {
        $config['ownedPublicGroupID'] = $id;
    } else {
        if (!$config['ownedPublicNoAnonymousGroupID'] && $type == 'PublicClosed' && $owner == $config['userID'] && $libraryReading == 'members') {
            $config['ownedPublicNoAnonymousGroupID'] = $id;
        } else {
            $toDelete[] = $id;
        }
    }
}
 private function getKeysWithAllGroupAccess($userID)
 {
     $response = API::superGet("users/{$userID}/keys");
     $this->assert200($response);
     $json = API::getJSONFromResponse($response);
     return array_map(function ($keyObj) {
         return $keyObj['key'];
     }, array_filter($json, function ($keyObj) {
         return !empty($keyObj['access']['groups']['all']['library']);
     }));
 }