Skip to content

Commit

Permalink
fix(settings): Fix config handling
Browse files Browse the repository at this point in the history
Signed-off-by: provokateurin <kate@provokateurin.de>
  • Loading branch information
provokateurin committed Sep 27, 2024
1 parent 6868cc8 commit 4aa9b0b
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 0 deletions.
11 changes: 11 additions & 0 deletions lib/Controller/FolderController.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
use OCA\GroupFolders\Service\DelegationService;
use OCA\GroupFolders\Service\FoldersFilter;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\AppFramework\OCSController;
Expand Down Expand Up @@ -148,6 +149,7 @@ private function getRootFolderStorageId(): ?int {
* @NoAdminRequired
* @throws OCSNotFoundException
*/
#[PasswordConfirmationRequired]
public function addFolder(string $mountpoint): DataResponse {
$id = $this->manager->createFolder(trim($mountpoint));
$folder = $this->manager->getFolder($id, $this->rootFolder->getMountPoint()->getNumericStorageId());
Expand All @@ -161,6 +163,7 @@ public function addFolder(string $mountpoint): DataResponse {
* @NoAdminRequired
* @RequireGroupFolderAdmin
*/
#[PasswordConfirmationRequired]
public function removeFolder(int $id): DataResponse {
$response = $this->checkFolderExists($id);
if ($response) {
Expand All @@ -176,6 +179,7 @@ public function removeFolder(int $id): DataResponse {
* @NoAdminRequired
* @RequireGroupFolderAdmin
*/
#[PasswordConfirmationRequired]
public function setMountPoint(int $id, string $mountPoint): DataResponse {
$this->manager->renameFolder($id, trim($mountPoint));
return new DataResponse(['success' => true]);
Expand All @@ -185,6 +189,7 @@ public function setMountPoint(int $id, string $mountPoint): DataResponse {
* @NoAdminRequired
* @RequireGroupFolderAdmin
*/
#[PasswordConfirmationRequired]
public function addGroup(int $id, string $group): DataResponse {
$response = $this->checkFolderExists($id);
if ($response) {
Expand All @@ -198,6 +203,7 @@ public function addGroup(int $id, string $group): DataResponse {
* @NoAdminRequired
* @RequireGroupFolderAdmin
*/
#[PasswordConfirmationRequired]
public function removeGroup(int $id, string $group): DataResponse {
$response = $this->checkFolderExists($id);
if ($response) {
Expand All @@ -211,6 +217,7 @@ public function removeGroup(int $id, string $group): DataResponse {
* @NoAdminRequired
* @RequireGroupFolderAdmin
*/
#[PasswordConfirmationRequired]
public function setPermissions(int $id, string $group, int $permissions): DataResponse {
$response = $this->checkFolderExists($id);
if ($response) {
Expand All @@ -225,6 +232,7 @@ public function setPermissions(int $id, string $group, int $permissions): DataRe
* @RequireGroupFolderAdmin
* @throws \OCP\DB\Exception
*/
#[PasswordConfirmationRequired]
public function setManageACL(int $id, string $mappingType, string $mappingId, bool $manageAcl): DataResponse {
$response = $this->checkFolderExists($id);
if ($response) {
Expand All @@ -238,6 +246,7 @@ public function setManageACL(int $id, string $mappingType, string $mappingId, bo
* @NoAdminRequired
* @RequireGroupFolderAdmin
*/
#[PasswordConfirmationRequired]
public function setQuota(int $id, int $quota): DataResponse {
$response = $this->checkFolderExists($id);
if ($response) {
Expand All @@ -251,6 +260,7 @@ public function setQuota(int $id, int $quota): DataResponse {
* @NoAdminRequired
* @RequireGroupFolderAdmin
*/
#[PasswordConfirmationRequired]
public function setACL(int $id, bool $acl): DataResponse {
$response = $this->checkFolderExists($id);
if ($response) {
Expand All @@ -264,6 +274,7 @@ public function setACL(int $id, bool $acl): DataResponse {
* @NoAdminRequired
* @RequireGroupFolderAdmin
*/
#[PasswordConfirmationRequired]
public function renameFolder(int $id, string $mountpoint): DataResponse {
$response = $this->checkFolderExists($id);
if ($response) {
Expand Down
20 changes: 20 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
"@nextcloud/initial-state": "^2.2.0",
"@nextcloud/l10n": "^3.1.0",
"@nextcloud/logger": "^3.0.2",
"@nextcloud/password-confirmation": "^5.1.1",
"@nextcloud/router": "^3.0.1",
"@nextcloud/vue": "^8.17.0",
"nextcloud-server": "^0.15.10",
Expand Down
21 changes: 21 additions & 0 deletions src/settings/Api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
*/
import { generateUrl } from '@nextcloud/router'
import axios from '@nextcloud/axios'
import { confirmPassword } from '@nextcloud/password-confirmation'
// eslint-disable-next-line n/no-unpublished-import
import type { OCSResponse } from '@nextcloud/typings/lib/ocs'

Expand Down Expand Up @@ -74,34 +75,48 @@ export class Api {

// Updates the list of groups that have been granted delegated admin or subadmin rights on groupfolders
async updateDelegatedGroups(newGroups: Group[], classname: string): Promise<void> {
await confirmPassword()

await axios.post(generateUrl('/apps/settings/') + '/settings/authorizedgroups/saveSettings', {
newGroups,
class: classname,
})
}

async createFolder(mountPoint: string): Promise<Folder> {
await confirmPassword()

const response = await axios.post<OCSResponse<Folder>>(this.getUrl('folders'), { mountpoint: mountPoint })
return response.data.ocs.data
}

async deleteFolder(id: number): Promise<void> {
await confirmPassword()

await axios.delete(this.getUrl(`folders/${id}`))
}

async addGroup(folderId: number, group: string): Promise<void> {
await confirmPassword()

await axios.post(this.getUrl(`folders/${folderId}/groups`), { group })
}

async removeGroup(folderId: number, group: string): Promise<void> {
await confirmPassword()

await axios.delete(this.getUrl(`folders/${folderId}/groups/${group}`))
}

async setPermissions(folderId: number, group: string, permissions: number): Promise<void> {
await confirmPassword()

await axios.post(this.getUrl(`folders/${folderId}/groups/${group}`), { permissions })
}

async setManageACL(folderId: number, type: string, id: string, manageACL: boolean): Promise<void> {
await confirmPassword()

await axios.post(this.getUrl(`folders/${folderId}/manageACL`), {
mappingType: type,
mappingId: id,
Expand All @@ -110,14 +125,20 @@ export class Api {
}

async setQuota(folderId: number, quota: number): Promise<void> {
await confirmPassword()

await axios.post(this.getUrl(`folders/${folderId}/quota`), { quota })
}

async setACL(folderId: number, acl: boolean): Promise<void> {
await confirmPassword()

await axios.post(this.getUrl(`folders/${folderId}/acl`), { acl: acl ? 1 : 0 })
}

async renameFolder(folderId: number, mountpoint: string): Promise<void> {
await confirmPassword()

await axios.post(this.getUrl(`folders/${folderId}/mountpoint`), { mountpoint })
}

Expand Down

0 comments on commit 4aa9b0b

Please sign in to comment.