Skip to content

Commit 558fbcd

Browse files
authored
Merge pull request #47589 from nextcloud/fix/user-settings-admin
fix(settings): Hide forbidden UI elements for group managers
2 parents 7362ede + 380b92c commit 558fbcd

6 files changed

Lines changed: 26 additions & 14 deletions

apps/settings/src/components/UserList.vue

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,16 @@ export default {
357357
},
358358
359359
setNewUserDefaultGroup(value) {
360-
if (value && value.length > 0) {
360+
// Is no value set, but user is a line manager we set their group as this is a requirement for line manager
361+
if (!value && !this.settings.isAdmin && !this.settings.isDelegatedAdmin) {
362+
// if there are multiple groups we do not know which to add,
363+
// so we cannot make the managers life easier by preselecting it.
364+
if (this.groups.length === 1) {
365+
value = this.groups[0].id
366+
}
367+
}
368+
369+
if (value) {
361370
// setting new account default group to the current selected one
362371
const currentGroup = this.groups.find(group => group.id === value)
363372
if (currentGroup) {

apps/settings/src/views/UserManagementNavigation.vue

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
</template>
3131
</NcAppNavigationItem>
3232

33-
<NcAppNavigationItem v-if="isAdmin"
33+
<NcAppNavigationItem v-if="settings.isAdmin"
3434
id="admin"
3535
:exact="true"
3636
:name="t('settings', 'Admins')"
@@ -46,15 +46,16 @@
4646
</template>
4747
</NcAppNavigationItem>
4848

49-
<NcAppNavigationItem id="recent"
49+
<NcAppNavigationItem v-if="isAdminOrDelegatedAdmin"
50+
id="recent"
5051
:exact="true"
5152
:name="t('settings', 'Recently active')"
5253
:to="{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }">
5354
<template #icon>
5455
<NcIconSvgWrapper :path="mdiHistory" />
5556
</template>
5657
<template #counter>
57-
<NcCounterBubble v-if="recentGroup?.usercount > 0"
58+
<NcCounterBubble v-if="recentGroup?.usercount"
5859
:type="selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined">
5960
{{ recentGroup.usercount }}
6061
</NcCounterBubble>
@@ -84,11 +85,11 @@
8485
force-menu
8586
is-heading
8687
:open.sync="isAddGroupOpen">
87-
<template #actionsTriggerIcon>
88+
<template v-if="isAdminOrDelegatedAdmin" #actionsTriggerIcon>
8889
<NcLoadingIcon v-if="loadingAddGroup" />
8990
<NcIconSvgWrapper v-else :path="mdiPlus" />
9091
</template>
91-
<template #actions>
92+
<template v-if="isAdminOrDelegatedAdmin" #actions>
9293
<NcActionText>
9394
<template #icon>
9495
<AccountGroup :size="20" />
@@ -171,8 +172,10 @@ const userCount = computed(() => store.getters.getUserCount)
171172
const groups = computed(() => store.getters.getSortedGroups)
172173
const { adminGroup, recentGroup, disabledGroup, userGroups } = useFormatGroups(groups)
173174
174-
/** True if the current user is an administrator */
175-
const isAdmin = computed(() => store.getters.getServerData.isAdmin)
175+
/** Server settings for current user */
176+
const settings = computed(() => store.getters.getServerData)
177+
/** True if the current user is a (delegated) admin */
178+
const isAdminOrDelegatedAdmin = computed(() => settings.value.isAdmin || settings.value.isDelegatedAdmin)
176179
177180
/** True if the 'add-group' dialog is open - needed to be able to close it when the group is created */
178181
const isAddGroupOpen = ref(false)

dist/settings-users-3239.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/settings-users-3239.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/settings-vue-settings-apps-users-management.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/settings-vue-settings-apps-users-management.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)