Skip to content

Commit 4ffb28d

Browse files
authored
Merge pull request #59812 from nextcloud/backport/59788/stable31
[stable31] fix: Add missing PasswordConfirmationRequired attributes
2 parents ebddef3 + f9d094d commit 4ffb28d

30 files changed

Lines changed: 168 additions & 93 deletions

apps/oauth2/lib/Controller/SettingsController.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use OCA\OAuth2\Db\ClientMapper;
1414
use OCP\AppFramework\Controller;
1515
use OCP\AppFramework\Http;
16+
use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired;
1617
use OCP\AppFramework\Http\JSONResponse;
1718
use OCP\Authentication\Token\IProvider as IAuthTokenProvider;
1819
use OCP\IL10N;
@@ -40,6 +41,7 @@ public function __construct(
4041
parent::__construct($appName, $request);
4142
}
4243

44+
#[PasswordConfirmationRequired(strict: true)]
4345
public function addClient(string $name,
4446
string $redirectUri): JSONResponse {
4547
if (filter_var($redirectUri, FILTER_VALIDATE_URL) === false) {
@@ -66,6 +68,7 @@ public function addClient(string $name,
6668
return new JSONResponse($result);
6769
}
6870

71+
#[PasswordConfirmationRequired]
6972
public function deleteClient(int $id): JSONResponse {
7073
$client = $this->clientMapper->getByUid($id);
7174

apps/oauth2/src/App.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
7373
import NcNoteCard from '@nextcloud/vue/dist/Components/NcNoteCard.js'
7474
import { loadState } from '@nextcloud/initial-state'
7575
import NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'
76+
import { PwdConfirmationMode } from '@nextcloud/password-confirmation'
7677
7778
export default {
7879
name: 'App',
@@ -123,6 +124,7 @@ export default {
123124
name: this.newClient.name,
124125
redirectUri: this.newClient.redirectUri,
125126
},
127+
{ confirmPassword: PwdConfirmationMode.Strict },
126128
).then(response => {
127129
// eslint-disable-next-line vue/no-mutating-props
128130
this.clients.push(response.data)

apps/oauth2/src/main.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
* SPDX-License-Identifier: AGPL-3.0-or-later
44
*/
55

6+
import axios from '@nextcloud/axios'
67
import Vue from 'vue'
78
import App from './App.vue'
89
import { loadState } from '@nextcloud/initial-state'
10+
import { addPasswordConfirmationInterceptors } from '@nextcloud/password-confirmation'
911

1012
Vue.prototype.t = t
1113
Vue.prototype.OC = OC
1214

15+
addPasswordConfirmationInterceptors(axios)
16+
1317
const clients = loadState('oauth2', 'clients')
1418

1519
const View = Vue.extend(App)

apps/provisioning_api/lib/Controller/AppsController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public function getAppInfo(string $app): DataResponse {
8888
*
8989
* 200: App enabled successfully
9090
*/
91-
#[PasswordConfirmationRequired]
91+
#[PasswordConfirmationRequired(strict: true)]
9292
public function enable(string $app): DataResponse {
9393
try {
9494
$this->appManager->enableApp($app);

apps/settings/lib/Controller/AppSettingsController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,7 +564,7 @@ public function enableApp(string $appId, array $groups = []): JSONResponse {
564564
* @param array $groups
565565
* @return JSONResponse
566566
*/
567-
#[PasswordConfirmationRequired]
567+
#[PasswordConfirmationRequired(strict: true)]
568568
public function enableApps(array $appIds, array $groups = []): JSONResponse {
569569
try {
570570
$updateRequired = false;

apps/settings/lib/Controller/AuthorizedGroupController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use OCA\Settings\Service\AuthorizedGroupService;
1111
use OCA\Settings\Service\NotFoundException;
1212
use OCP\AppFramework\Controller;
13+
use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired;
1314
use OCP\AppFramework\Http\DataResponse;
1415
use OCP\DB\Exception;
1516
use OCP\IRequest;
@@ -27,6 +28,7 @@ public function __construct(
2728
* @throws NotFoundException
2829
* @throws Exception
2930
*/
31+
#[PasswordConfirmationRequired(strict: true)]
3032
public function saveSettings(array $newGroups, string $class): DataResponse {
3133
$currentGroups = $this->authorizedGroupService->findExistingGroupsForClass($class);
3234

apps/settings/lib/Controller/TwoFactorSettingsController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use OC\Authentication\TwoFactorAuth\EnforcementState;
1212
use OC\Authentication\TwoFactorAuth\MandatoryTwoFactor;
1313
use OCP\AppFramework\Controller;
14+
use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired;
1415
use OCP\AppFramework\Http\JSONResponse;
1516
use OCP\IRequest;
1617

@@ -31,6 +32,7 @@ public function index(): JSONResponse {
3132
return new JSONResponse($this->mandatoryTwoFactor->getState());
3233
}
3334

35+
#[PasswordConfirmationRequired(strict: true)]
3436
public function update(bool $enforced, array $enforcedGroups = [], array $excludedGroups = []): JSONResponse {
3537
$this->mandatoryTwoFactor->setState(
3638
new EnforcementState($enforced, $enforcedGroups, $excludedGroups)

apps/settings/src/components/AdminDelegation/GroupSelect.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
1818
import { generateUrl } from '@nextcloud/router'
1919
import axios from '@nextcloud/axios'
2020
import { showError } from '@nextcloud/dialogs'
21+
import { PwdConfirmationMode } from '@nextcloud/password-confirmation'
2122
import logger from '../../logger.ts'
2223
2324
export default {
@@ -59,7 +60,7 @@ export default {
5960
class: this.setting.class,
6061
}
6162
try {
62-
await axios.post(generateUrl('/apps/settings/') + '/settings/authorizedgroups/saveSettings', data)
63+
await axios.post(generateUrl('/apps/settings/') + '/settings/authorizedgroups/saveSettings', data, { confirmPassword: PwdConfirmationMode.Strict })
6364
} catch (e) {
6465
showError(t('settings', 'Unable to modify setting'))
6566
logger.error('Unable to modify setting', e)

apps/settings/src/components/AdminTwoFactor.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
7676
import NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'
7777
import NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'
7878
import { loadState } from '@nextcloud/initial-state'
79+
import { PwdConfirmationMode } from '@nextcloud/password-confirmation'
7980
8081
import sortedUniq from 'lodash/sortedUniq.js'
8182
import uniq from 'lodash/uniq.js'
@@ -156,7 +157,7 @@ export default {
156157
enforcedGroups: this.enforcedGroups,
157158
excludedGroups: this.excludedGroups,
158159
}
159-
axios.put(generateUrl('/settings/api/admin/twofactorauth'), data)
160+
axios.put(generateUrl('/settings/api/admin/twofactorauth'), data, { confirmPassword: PwdConfirmationMode.Strict })
160161
.then(resp => resp.data)
161162
.then(state => {
162163
this.state = state

apps/settings/src/main-admin-delegation.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33
* SPDX-License-Identifier: AGPL-3.0-or-later
44
*/
55

6+
import axios from '@nextcloud/axios'
7+
import { addPasswordConfirmationInterceptors } from '@nextcloud/password-confirmation'
68
import Vue from 'vue'
79
import App from './components/AdminDelegating.vue'
810

11+
addPasswordConfirmationInterceptors(axios)
12+
913
// bind to window
1014
Vue.prototype.OC = OC
1115
Vue.prototype.t = t

0 commit comments

Comments
 (0)