Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions appinfo/info.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

<bugs>https://www.arawa.fr/contact/</bugs>
<dependencies>
<php min-version="8.0"/>
<nextcloud min-version="25" max-version="29"/>
</dependencies>

Expand Down
4 changes: 0 additions & 4 deletions lib/AppInfo/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\AppFramework\Utility\IControllerMethodReflector;
use OCP\IRequest;
use OCP\IURLGenerator;

Expand All @@ -52,7 +51,6 @@ public function register(IRegistrationContext $context): void {

$context->registerService(IsSpaceAdminMiddleware::class, function ($c) {
return new IsSpaceAdminMiddleware(
$c->query(IControllerMethodReflector::class),
$c->query(IRequest::class),
$c->query(UserService::class),
$c->query(SpaceService::class)
Expand All @@ -61,8 +59,6 @@ public function register(IRegistrationContext $context): void {

$context->registerService(IsGeneralManagerMiddleware::class, function ($c) {
return new IsGeneralManagerMiddleware(
$c->query(IControllerMethodReflector::class),
$c->query(IRequest::class),
$c->query(UserService::class)
);
});
Expand Down
12 changes: 6 additions & 6 deletions lib/Controller/FileCSVController.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@
use OCA\Workspace\Files\Csv;
use OCA\Workspace\Files\InternalFile;
use OCA\Workspace\Files\LocalFile;
use OCA\Workspace\Middleware\Attribute\SpaceAdminRequired;
use OCA\Workspace\Service\UserService;
use OCA\Workspace\Service\WorkspaceService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\JSONResponse;
use OCP\Files\IRootFolder;
use OCP\Files\Node;
Expand All @@ -57,11 +59,10 @@ public function __construct(
}

/**
* @NoAdminRequired
* @SpaceAdminRequired
* Returns formatted list of existing users of the instance.
*
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function import(): JSONResponse {
$params = $this->request->getParams();
$spaceObj = $params['space'];
Expand Down Expand Up @@ -116,11 +117,10 @@ public function import(): JSONResponse {
}

/**
* @NoAdminRequired
* @SpaceAdminRequired
* Returns formatted list of existing users of the instance.
*
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function getFromFiles():JSONResponse {
$params = $this->request->getParams();
$path = $params['path'];
Expand Down
38 changes: 18 additions & 20 deletions lib/Controller/GroupController.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@

namespace OCA\Workspace\Controller;

use OCA\Workspace\Middleware\Attribute\GeneralManagerRequired;
use OCA\Workspace\Middleware\Attribute\SpaceAdminRequired;
use OCA\Workspace\Service\Group\GroupFolder\GroupFolderManage;
use OCA\Workspace\Service\Group\GroupFormatter;
use OCA\Workspace\Service\Group\GroupsWorkspaceService;
Expand All @@ -36,6 +38,7 @@
use OCA\Workspace\Service\UserService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\JSONResponse;
use OCP\IGroupManager;
use OCP\IRequest;
Expand All @@ -60,9 +63,6 @@ public function __construct(
}

/**
* @NoAdminRequired
* @SpaceAdminRequired
*
* Creates a group
* NB: This function could probably be abused by space managers to create arbitrary group. But, do we really care?
*
Expand All @@ -73,6 +73,8 @@ public function __construct(
* @var string $spaceId for Middleware
*
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function create(array $data = []): JSONResponse {

$data = array_merge(self::DEFAULT, $data);
Expand Down Expand Up @@ -100,16 +102,15 @@ public function create(array $data = []): JSONResponse {
}

/**
* @NoAdminRequired
* @SpaceAdminRequired
*
* Deletes a group
* Cannot delete GE- and U- groups (This is on-purpose)
*
* @var string $gid
* @var int $spaceId
*
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function delete(string $gid, int $spaceId): JSONResponse {
// TODO Use groupfolder api to retrieve workspace group.
if (substr($gid, -strlen($spaceId)) != $spaceId) {
Expand All @@ -132,9 +133,6 @@ public function delete(string $gid, int $spaceId): JSONResponse {
}

/**
* @NoAdminRequired
* @SpaceAdminRequired
*
* Renames a group
* Cannot rename GE- and U- groups (This is on-purpose)
*
Expand All @@ -143,6 +141,8 @@ public function delete(string $gid, int $spaceId): JSONResponse {
* @var int $spaceId
*
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function rename(string $newGroupName,
string $gid,
int $spaceId): JSONResponse {
Expand Down Expand Up @@ -176,8 +176,6 @@ public function rename(string $newGroupName,
}

/**
* @NoAdminRequired
* @SpaceAdminRequired
* Adds a user to a group.
* The function automaticaly adds the user the the corresponding workspace's user group, and to the application
* manager group when we are adding a workspace manager
Expand All @@ -187,6 +185,8 @@ public function rename(string $newGroupName,
* @var string $user
*
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function addUser(string $spaceId, string $gid, string $user): JSONResponse {
// Makes sure group exist
$NCGroup = $this->groupManager->get($gid);
Expand Down Expand Up @@ -226,14 +226,13 @@ public function addUser(string $spaceId, string $gid, string $user): JSONRespons
/**
* Remove a user from a workspace.
*
* @NoAdminRequired
* @SpaceAdminRequired
*
* @param array|string $space
* @param string $gid
* @param string $user
* @return JSONResponse
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function removeUserFromWorkspace(
array|string $space,
string $gid,
Expand Down Expand Up @@ -283,9 +282,6 @@ public function removeUserFromWorkspace(
}

/**
* @NoAdminRequired
* @SpaceAdminRequired
*
* Removes a user from a group
* The function also remove the user from all workspace 'subgroup when the user is being removed from the U- group
* and from the WorkspacesManagers group when the user is being removed from the GE- group
Expand All @@ -295,6 +291,8 @@ public function removeUserFromWorkspace(
* @var string $user
*
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function removeUser(
IRequest $request,
array|string $space,
Expand Down Expand Up @@ -370,11 +368,11 @@ public function removeUser(
}

/**
* @NoAdminRequired
* @GeneralManagerRequired
* @param string $spaceId
* @param string|array $groupfolder
*
*/
#[NoAdminRequired]
#[GeneralManagerRequired]
public function transferUsersToGroups(string $spaceId,
string|array $groupfolder): JSONResponse {
if (gettype($groupfolder) === 'string') {
Expand Down
6 changes: 4 additions & 2 deletions lib/Controller/PageController.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
use OCA\Workspace\AppInfo\Application;
use OCA\Workspace\Service\UserService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Util;

Expand All @@ -40,9 +42,9 @@ public function __construct(
/**
* Application's main page
*
* @NoAdminRequired
* @NOCSRFRequired
*/
#[NoAdminRequired]
#[NoCSRFRequired]
public function index(): TemplateResponse {
Util::addScript(Application::APP_ID, 'workspace-main'); // js/workspace-main.js
Util::addStyle(Application::APP_ID, 'workspace-style'); // css/workspace-style.css
Expand Down
15 changes: 9 additions & 6 deletions lib/Controller/SpaceController.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,10 @@
namespace OCA\Workspace\Controller;

use OCA\Workspace\Db\SpaceMapper;
use OCA\Workspace\Middleware\Attribute\SpaceAdminRequired;
use OCA\Workspace\Service\SpaceService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\Attribute\NoAdminRequired;
use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest;

Expand All @@ -42,23 +44,24 @@ public function __construct(
}

/**
* @NoAdminRequired
* @param $id - The space id to get a space - OCA\Workspace\Db\Space .
* @return DataResponse - The space serialized
*/
#[NoAdminRequired]
public function find(int $id): DataResponse {
return new DataResponse($this->spaceService->find($id));
}

/**
* @NoAdminRequired
*/
#[NoAdminRequired]
public function findAll(): DataResponse {
return new DataResponse($this->spaceService->findAll());
}

/**
* @NoAdminRequired
* @SpaceAdminRequired
* @return DataResponse - The space serialized
*/
#[NoAdminRequired]
#[SpaceAdminRequired]
public function updateColorCode(string $colorCode, int $spaceId): DataResponse {
return new DataResponse($this->spaceService->updateColorCode($colorCode, (int)$spaceId));
}
Expand Down
Loading