fix: Fix AuthorizedAdminSetting attribute behavior
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This commit is contained in:
@@ -11,6 +11,7 @@ namespace OCA\Provisioning_API\Middleware;
|
||||
use OCA\Provisioning_API\Middleware\Exceptions\NotSubAdminException;
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\Attribute\AuthorizedAdminSetting;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\AppFramework\Middleware;
|
||||
use OCP\AppFramework\OCS\OCSException;
|
||||
@@ -40,7 +41,7 @@ class ProvisioningApiMiddleware extends Middleware {
|
||||
*/
|
||||
public function beforeController($controller, $methodName) {
|
||||
// If AuthorizedAdminSetting, the check will be done in the SecurityMiddleware
|
||||
if (!$this->isAdmin && !$this->reflector->hasAnnotation('NoSubAdminRequired') && !$this->isSubAdmin && !$this->reflector->hasAnnotation('AuthorizedAdminSetting')) {
|
||||
if (!$this->isAdmin && !$this->reflector->hasAnnotation('NoSubAdminRequired') && !$this->isSubAdmin && !$this->reflector->hasAnnotationOrAttribute('AuthorizedAdminSetting', AuthorizedAdminSetting::class)) {
|
||||
throw new NotSubAdminException();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ use OC\AppFramework\Http;
|
||||
use OC\AppFramework\Middleware\Security\Exceptions\NotAdminException;
|
||||
use OC\AppFramework\Utility\ControllerMethodReflector;
|
||||
use OCP\AppFramework\Controller;
|
||||
use OCP\AppFramework\Http\Attribute\AuthorizedAdminSetting;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\AppFramework\Middleware;
|
||||
use OCP\Group\ISubAdmin;
|
||||
@@ -44,7 +45,7 @@ class SubadminMiddleware extends Middleware {
|
||||
|
||||
#[Override]
|
||||
public function beforeController(Controller $controller, string $methodName): void {
|
||||
if (!$this->reflector->hasAnnotation('NoSubAdminRequired') && !$this->reflector->hasAnnotation('AuthorizedAdminSetting')) {
|
||||
if (!$this->reflector->hasAnnotation('NoSubAdminRequired') && !$this->reflector->hasAnnotationOrAttribute('AuthorizedAdminSetting', AuthorizedAdminSetting::class)) {
|
||||
if (!$this->isSubAdmin()) {
|
||||
throw new NotAdminException($this->l10n->t('Logged in account must be a sub admin'));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user