diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2019-01-29 10:38:05 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2019-01-29 20:47:35 +0100 |
commit | 15abcff2a199f9d80baabbc39778765a2458acd2 (patch) | |
tree | c535c00106a36d2b9b4a225172da1939ee100779 /lib/public | |
parent | 754932c7569f61fddd152151fcdcae6dbce9e834 (diff) | |
download | nextcloud-server-15abcff2a199f9d80baabbc39778765a2458acd2.tar.gz nextcloud-server-15abcff2a199f9d80baabbc39778765a2458acd2.zip |
Expose subadmin to OCP
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'lib/public')
-rw-r--r-- | lib/public/Group/ISubAdmin.php | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/lib/public/Group/ISubAdmin.php b/lib/public/Group/ISubAdmin.php new file mode 100644 index 00000000000..571b9e3db63 --- /dev/null +++ b/lib/public/Group/ISubAdmin.php @@ -0,0 +1,99 @@ +<?php +declare(strict_types=1); +/** + * @copyright Copyright (c) 2019, Roeland Jago Douma <roeland@famdouma.nl> + * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCP\Group; + +use OCP\IGroup; +use OCP\IUser; + +/** + * @since 16.0.0 + */ +interface ISubAdmin { + + /** + * add a SubAdmin + * @param IUser $user user to be SubAdmin + * @param IGroup $group group $user becomes subadmin of + * + * @since 16.0.0 + */ + public function createSubAdmin(IUser $user, IGroup $group): void; + + /** + * delete a SubAdmin + * @param IUser $user the user that is the SubAdmin + * @param IGroup $group the group + * + * @since 16.0.0 + */ + public function deleteSubAdmin(IUser $user, IGroup $group): void; + + /** + * get groups of a SubAdmin + * @param IUser $user the SubAdmin + * @return IGroup[] + * + * @since 16.0.0 + */ + public function getSubAdminsGroups(IUser $user): array; + + /** + * get SubAdmins of a group + * @param IGroup $group the group + * @return IUser[] + * + * @since 16.0.0 + */ + public function getGroupsSubAdmins(IGroup $group): array; + + /** + * checks if a user is a SubAdmin of a group + * @param IUser $user + * @param IGroup $group + * @return bool + * + * @since 16.0.0 + */ + public function isSubAdminOfGroup(IUser $user, IGroup $group): bool; + + /** + * checks if a user is a SubAdmin + * @param IUser $user + * @return bool + * + * @since 16.0.0 + */ + public function isSubAdmin(IUser $user): bool; + + /** + * checks if a user is a accessible by a subadmin + * @param IUser $subadmin + * @param IUser $user + * @return bool + * + * @since 16.0.0 + */ + public function isUserAccessible(IUser $subadmin, IUser $user): bool; +} |