Commit graph

759 commits

Author SHA1 Message Date
krazyhell
f8980dab61 feat: implement isSelectableGroup function to filter out unselectable groups
Signed-off-by: krazyhell <hellwarrior@riseup.net>
2026-06-11 11:00:58 +02:00
nfebe
f0486506a7 fix(settings): Show loading spinner while searching accounts
Typing in the account search field briefly emptied the list and
displayed "No accounts" until the request returned, which on large
instances misled admins into thinking the query matched nothing. The
empty-state now keeps the loading spinner visible whenever the list is
empty and a fetch is in flight, regardless of whether it is the initial
page load or a subsequent search/group switch.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-06-09 13:36:10 +01:00
Peter Ringelmann
bbdb7d01b8 refactor(settings): switch wipe dialog to confirm
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Peter Ringelmann
1d035b4cfc refactor(settings): tighten auth-token dialog components
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Peter Ringelmann
4b1c3fbe3b fix(settings,oauth2): preserve wipe state across admin deletion paths
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Peter Ringelmann
16ca990bdb fix(settings): confirm before revoking app tokens
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Peter Ringelmann
05a188e3a8 fix(settings): confirm before revoking app tokens
Adds an NcDialog confirmation to the Revoke action; deletion was
previously instant on click. When the token is marked for remote
wipe, the dialog surfaces a warning and the destructive button
switches to "Cancel wipe and revoke" so cancelling an in-flight
wipe is an explicit opt-in.

Also migrates the existing Wipe confirm from the legacy
window.OC.dialogs.confirm helper to NcDialog, matching the new
delete dialog. The auth token store actions are now pure API
callers; the UI does the gating.

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Ferdinand Thiessen
4ffcb2a255
Merge pull request #60243 from nextcloud/fix/settings-icon
fix(settings): remove legacy handling of active navigation settings icon
2026-05-12 19:26:47 +02:00
Ferdinand Thiessen
56293454c8 fix(settings): apply consistent style by using proper components
Use the proper app navigation components for the account management
navigation.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 18:01:02 +02:00
nfebe
3eb717eb16 fix(settings): Limit active-icon inversion to legacy nav design
On the new tinted active background the inversion flips icons to
white on a light surface. Now scoped to the legacy design only.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-05-12 12:32:07 +02:00
Ferdinand Thiessen
60f4b4c159
fix(settings): use proper component structure to make navigation work
`NcAppNavigation` is only allowed in `NcContent` but we were not using
it because the content was rendered by the server as templates.
This is now fixed by moving the content inside the `NcContent` once
mounted.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-10 22:18:29 +02:00
Ferdinand Thiessen
5b756ad8bc refactor: split appstore from settings
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-05 10:41:04 +02:00
Peter Ringelmann
b9ac421649 chore: fix linting
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:54:14 +02:00
Peter Ringelmann
15279b44d8 fix(settings): debounce manager search and drop startup-time preload
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:39 +02:00
Peter Ringelmann
9e82d25f22 refactor(settings): inline UserRowMixin into UserRow
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:38 +02:00
Peter Ringelmann
24c29f4606 fix(settings): restore initForm language assignment comment
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:38 +02:00
Peter Ringelmann
cf2d31597f fix(settings): update group counts after editUserMultiField
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann
9fe75f3502 fix: align static value with inputs
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann
f1b916ce3e fix(settings): reset new user form after creation
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann
72f41f399d fix(settings): replace disabled username input with static display, use design tokens
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann
c8f3c0423e fix(provisioning_api): allow clearing display name via editUserMultiField
Map empty string to userId since User::setDisplayName() rejects ""
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann
2bfdd86561 fix(settings): auth guards, NcSelectUsers migration, form cleanup
Mirror editUser permission checks in editUserMultiField. Swap NcSelect
:user-select for NcSelectUsers. Extract helpers into userFormUtils.ts.
Simplify UserList form init, drop unused Vue import. Update E2E tests.
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann
48f4b0b956 fix: improve UI layout of modal
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann
5eb8ef6f18 feat(settings): replace inline user editing with edit dialog
Replace inline row editing in user management with a modal dialog.
Extract shared form fields into UserFormFields with sub-components
(Groups, Quota, Language, Manager) using a single formData prop.
Normalize newUser shape to API-aligned field names.

Refs: #40903
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann
f96730587f feat(provisioning_api): implement editUserMultiField PATCH endpoint
Add atomic multi-field user update with collected validation errors,
IAppConfig migration, and corresponding Vuex store action/mutation.

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Josh
b7ecd901aa fix(settings): sort app list by status bucket and app name
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-04-29 12:24:52 +00:00
Peter Ringelmann
6f5ede3412 feat(settings): advertise keyboard shortcuts in user management
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Peter Ringelmann
a17d6a8e02 refactor(settings): use useHotKey composable for Ctrl+F shortcut
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Peter Ringelmann
6ca6601820 fix: catch ctrl+f event to focus new search
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Peter Ringelmann
43a1f7c832 feat(settings): unified search for accounts and groups
Replace the unified search event bus subscription and the separate group
sidebar search with a single input in the account management navigation.
The query is shared via Vuex so UserList and AppNavigationGroupList
react to the same state.

Part of #53862
Fixes #59166

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Peter Ringelmann
a070301443
fix(frontend): add strict password confirmation for sensitive admin actions
Register axios password confirmation interceptors in the apps
management, admin delegation, admin security, and OAuth2 settings
bundles, and pass PwdConfirmationMode.Strict on requests to endpoints
protected with #[PasswordConfirmationRequired(strict: true)], so that
the user password is verified via Basic auth on the request itself
rather than relying on the session timestamp.

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-21 10:21:08 +02:00
Ferdinand Thiessen
6db75dca92
chore: fix ESLint issues for rules added in ESLint v10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-20 22:13:24 +02:00
Joas Schilling
c9d7bce447
fix(apppasswords): Require password also on delete and update
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-04-13 15:09:10 +02:00
mykh-hailo
415ecb1cf5 feat: remove password column from user table
Signed-off-by: mykh-hailo <kristianderonta0205@gmail.com>
2026-04-08 12:03:56 -04:00
Ferdinand Thiessen
b060efaca4 fix(settings): hide list of webauthn devices if empty
- resolves https://github.com/nextcloud/server/issues/59339

If there are no devices the list would be empty.
This is invalid for accessibility, as every list needs at least one
listitem.
Ref: https://www.w3.org/TR/wai-aria-1.2/#mustContain

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-07 16:56:21 +02:00
Chandrika Mohan
38278d172f fix(settings): correctly detect Chrome on Android in devices & sessions
Signed-off-by: Chandrika Mohan <chandrikalov@gmail.com>

common logic to detect ua

Signed-off-by: Chandrika Mohan <chandrikalov@gmail.com>
2026-03-20 14:08:15 +01:00
Julien Veyssier
2fc9eda850
feat(profile-picker): add an admin setting in the profile section to toggle the picker and the previews
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-02-23 14:40:50 +01:00
Julius Knorr
edeba296b3 feat: Add office switcher with feature comparison
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2026-02-03 19:12:22 +01:00
Ferdinand Thiessen
2e4ede0320
refactor(settings): use NcAppNavigation for the settings navigation
Migrate away from jQuery and Snap.js for the navigation.
This is required to finally drop both dependencies.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 02:29:41 +01:00
Ferdinand Thiessen
efdf1ccf36
chore(legacy): fix vue/component-options-name-casing ESLint rule
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-26 00:05:29 +01:00
Ferdinand Thiessen
503acb0ed6
feat: allow to filter contacts by team
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-23 14:54:41 +01:00
Côme Chilliet
407d7cb101
fix: Add translator hints to avoid confusion between big and large
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-22 17:16:09 +01:00
Castillo
263a96faec fix(settings): Improve sharing form labels
Signed-off-by: Castillo <37965565+castillo92@users.noreply.github.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2026-01-20 16:37:10 +01:00
Arsalan Ul Haq Sohni
02dc7f1f79 docs: remove developer documentation link
Signed-off-by: Arsalan Ul Haq Sohni <arsalan-ul-haq.sohni@strato.de>
2026-01-20 09:40:03 +01:00
Ferdinand Thiessen
7ff0804e90
chore: adjust styles for new stylelint config
- replace renamed `word-wrap` with new name `overflow-wrap` (CSS3)
- use extensions for `@use`

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-19 15:33:39 +01:00
Cristian Scheid
5c1b795cb5 feat(profile): show Teams memberships on account details
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-01-19 12:10:14 +00:00
Ferdinand Thiessen
04fc1a4418
chore(settings): remove dead legacy code
The `security_password` was last used in the personal setting security
section, but already migrated to vue.
So it can be safely removed.

The styles can also be removed by moving the required ones directly to
the Vue component.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-15 16:13:35 +01:00
Ferdinand Thiessen
7d21350040 feat(settings): add option to allow self-signed mail certificates
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-15 02:12:03 +01:00
Ferdinand Thiessen
265d2c3f87 refactor(settings): migrate mail settings to Vue
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-15 02:12:03 +01:00
Ferdinand Thiessen
805805767f
refactor: consolidate OC.Settings
1. Remove unused legacy parts (no code match in the whole github
organization).
2. Consolidate `OC.Settings` in `core/src/OC` for consistency.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-13 15:41:59 +01:00