<?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']); })); }