Skip to content

Commit

Permalink
Merge pull request #20135 from owncloud/check-if-null-subadmin
Browse files Browse the repository at this point in the history
Drop OC_SubAdmin and replace usages
  • Loading branch information
DeepDiver1975 committed Oct 29, 2015
2 parents c30a68e + c6f6a87 commit 73d9699
Show file tree
Hide file tree
Showing 25 changed files with 2,538 additions and 1,793 deletions.
4 changes: 3 additions & 1 deletion apps/provisioning_api/appinfo/routes.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<?php
/**
* @author Joas Schilling <nickvergessen@owncloud.com>
* @author Lukas Reschke <lukas@owncloud.com>
* @author michag86 <micha_g@arcor.de>
* @author Morris Jobke <hey@morrisjobke.de>
* @author Roeland Jago Douma <rullzer@owncloud.com>
Expand Down Expand Up @@ -32,7 +33,8 @@
\OC::$server->getUserManager(),
\OC::$server->getConfig(),
\OC::$server->getGroupManager(),
\OC::$server->getUserSession()
\OC::$server->getUserSession(),
\OC::$server->getLogger()
);
API::register('get', '/cloud/users', [$users, 'getUsers'], 'provisioning_api', API::SUBADMIN_AUTH);
API::register('post', '/cloud/users', [$users, 'addUser'], 'provisioning_api', API::ADMIN_AUTH);
Expand Down
24 changes: 20 additions & 4 deletions apps/provisioning_api/lib/groups.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
namespace OCA\Provisioning_API;

use \OC_OCS_Result;
use \OC_SubAdmin;
use OCP\IGroup;
use OCP\IUser;

Expand Down Expand Up @@ -85,9 +84,16 @@ public function getGroup($parameters) {
if(!$this->groupManager->groupExists($parameters['groupid'])) {
return new OC_OCS_Result(null, \OCP\API::RESPOND_NOT_FOUND, 'The requested group could not be found');
}

$isSubadminOfGroup = false;
$targetGroupObject =$this->groupManager->get($parameters['groupid']);
if($targetGroupObject !== null) {
$isSubadminOfGroup =$this->groupManager->getSubAdmin()->isSubAdminofGroup($user, $targetGroupObject);
}

// Check subadmin has access to this group
if($this->groupManager->isAdmin($user->getUID())
|| in_array($parameters['groupid'], \OC_SubAdmin::getSubAdminsGroups($user->getUID()))){
|| $isSubadminOfGroup) {
$users = $this->groupManager->get($parameters['groupid'])->getUsers();
$users = array_map(function($user) {
/** @var IUser $user */
Expand Down Expand Up @@ -144,11 +150,21 @@ public function deleteGroup($parameters) {
public function getSubAdminsOfGroup($parameters) {
$group = $parameters['groupid'];
// Check group exists
if(!$this->groupManager->groupExists($group)) {
$targetGroup = $this->groupManager->get($group);
if($targetGroup === null) {
return new OC_OCS_Result(null, 101, 'Group does not exist');
}

$subadmins = $this->groupManager->getSubAdmin()->getGroupsSubAdmins($targetGroup);
// New class returns IUser[] so convert back
$uids = [];
foreach ($subadmins as $user) {
$uids[] = $user->getUID();
}
$subadmins = $uids;

// Go
if(!$subadmins = OC_Subadmin::getGroupsSubAdmins($group)) {
if(!$subadmins) {
return new OC_OCS_Result(null, 102, 'Unknown error occured');
} else {
return new OC_OCS_Result($subadmins);
Expand Down
Loading

0 comments on commit 73d9699

Please sign in to comment.