Combine OCS API getUser method code into provisioning_api app
Fixes #13002 Move the cloud/users/{userid} code in total to the provisioning API.
This commit is contained in:
parent
ef4278cfa9
commit
002e9c76cd
|
@ -115,46 +115,28 @@ class Users {
|
|||
return new OC_OCS_Result(null, \OCP\API::RESPOND_UNAUTHORISED);
|
||||
}
|
||||
|
||||
$data = [];
|
||||
|
||||
// Admin? Or SubAdmin?
|
||||
if($this->groupManager->isAdmin($user->getUID()) || OC_SubAdmin::isUserAccessible($user->getUID(), $userId)) {
|
||||
// Check they exist
|
||||
if(!$this->userManager->userExists($userId)) {
|
||||
return new OC_OCS_Result(null, \OCP\API::RESPOND_NOT_FOUND, 'The requested user could not be found');
|
||||
}
|
||||
// Show all
|
||||
$return = [
|
||||
'email',
|
||||
'enabled',
|
||||
];
|
||||
if($user->getUID() !== $userId) {
|
||||
$return[] = 'quota';
|
||||
}
|
||||
$data['enabled'] = $this->config->getUserValue($userId, 'core', 'enabled', 'true');
|
||||
} else {
|
||||
// Check they are looking up themselves
|
||||
if($user->getUID() !== $userId) {
|
||||
return new OC_OCS_Result(null, \OCP\API::RESPOND_UNAUTHORISED);
|
||||
}
|
||||
// Return some additional information compared to the core route
|
||||
$return = array(
|
||||
'email',
|
||||
'displayname',
|
||||
);
|
||||
}
|
||||
|
||||
// Find the data
|
||||
$data = [];
|
||||
$data = self::fillStorageInfo($userId, $data);
|
||||
$data['enabled'] = $this->config->getUserValue($userId, 'core', 'enabled', 'true');
|
||||
$data['quota'] = self::fillStorageInfo($userId);
|
||||
$data['email'] = $this->config->getUserValue($userId, 'settings', 'email');
|
||||
$data['displayname'] = $this->userManager->get($parameters['userid'])->getDisplayName();
|
||||
$data['displayname'] = $this->userManager->get($userId)->getDisplayName();
|
||||
|
||||
// Return the appropriate data
|
||||
$responseData = array();
|
||||
foreach($return as $key) {
|
||||
$responseData[$key] = $data[$key];
|
||||
}
|
||||
|
||||
return new OC_OCS_Result($responseData);
|
||||
return new OC_OCS_Result($data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -473,19 +455,20 @@ class Users {
|
|||
* @return mixed
|
||||
* @throws \OCP\Files\NotFoundException
|
||||
*/
|
||||
private static function fillStorageInfo($userId, $data) {
|
||||
private static function fillStorageInfo($userId) {
|
||||
$data = [];
|
||||
try {
|
||||
\OC_Util::tearDownFS();
|
||||
\OC_Util::setupFS($userId);
|
||||
$storage = OC_Helper::getStorageInfo('/');
|
||||
$data['quota'] = [
|
||||
$data = [
|
||||
'free' => $storage['free'],
|
||||
'used' => $storage['used'],
|
||||
'total' => $storage['total'],
|
||||
'relative' => $storage['relative'],
|
||||
];
|
||||
} catch (NotFoundException $ex) {
|
||||
$data['quota'] = [];
|
||||
$data = [];
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
|
|
@ -42,52 +42,6 @@ class OC_OCS_Cloud {
|
|||
return new OC_OCS_Result($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* gets user info
|
||||
*
|
||||
* exposes the quota of an user:
|
||||
* <data>
|
||||
* <quota>
|
||||
* <free>1234</free>
|
||||
* <used>4321</used>
|
||||
* <total>5555</total>
|
||||
* <ralative>0.78</ralative>
|
||||
* </quota>
|
||||
* </data>
|
||||
*
|
||||
* @param array $parameters should contain parameter 'userid' which identifies
|
||||
* the user from whom the information will be returned
|
||||
*/
|
||||
public static function getUser($parameters) {
|
||||
$return = array();
|
||||
// Check if they are viewing information on themselves
|
||||
if($parameters['userid'] === OC_User::getUser()) {
|
||||
// Self lookup
|
||||
$storage = OC_Helper::getStorageInfo('/');
|
||||
$return['quota'] = array(
|
||||
'free' => $storage['free'],
|
||||
'used' => $storage['used'],
|
||||
'total' => $storage['total'],
|
||||
'relative' => $storage['relative'],
|
||||
);
|
||||
}
|
||||
if(OC_User::isAdminUser(OC_User::getUser())
|
||||
|| OC_Subadmin::isUserAccessible(OC_User::getUser(), $parameters['userid'])) {
|
||||
if(OC_User::userExists($parameters['userid'])) {
|
||||
// Is an admin/subadmin so can see display name
|
||||
$return['displayname'] = OC_User::getDisplayName($parameters['userid']);
|
||||
} else {
|
||||
return new OC_OCS_Result(null, 101);
|
||||
}
|
||||
}
|
||||
if(count($return)) {
|
||||
return new OC_OCS_Result($return);
|
||||
} else {
|
||||
// No permission to view this user data
|
||||
return new OC_OCS_Result(null, 997);
|
||||
}
|
||||
}
|
||||
|
||||
public static function getCurrentUser() {
|
||||
$email=\OC::$server->getConfig()->getUserValue(OC_User::getUser(), 'settings', 'email', '');
|
||||
$data = array(
|
||||
|
|
|
@ -89,13 +89,6 @@ API::register(
|
|||
'core',
|
||||
API::USER_AUTH
|
||||
);
|
||||
API::register(
|
||||
'get',
|
||||
'/cloud/users/{userid}',
|
||||
array('OC_OCS_Cloud', 'getUser'),
|
||||
'core',
|
||||
API::USER_AUTH
|
||||
);
|
||||
API::register(
|
||||
'get',
|
||||
'/cloud/user',
|
||||
|
|
Loading…
Reference in New Issue