+
= ref()
const formData = ref({
displayName: {
@@ -298,6 +298,7 @@ export default defineComponent({
maxQuota: capabilityRefs.spacesMaxQuota,
isInputFieldReadOnly,
isLoginInputDisabled,
+ graphUsersEditLoginAllowedDisabled,
editUser,
formData,
groupOptions,
diff --git a/packages/web-app-admin-settings/src/components/Users/UsersList.vue b/packages/web-app-admin-settings/src/components/Users/UsersList.vue
index 7cb8fb0090..aae98f9750 100644
--- a/packages/web-app-admin-settings/src/components/Users/UsersList.vue
+++ b/packages/web-app-admin-settings/src/components/Users/UsersList.vue
@@ -148,6 +148,7 @@ import { findIndex } from 'lodash-es'
import Mark from 'mark.js'
import { OcTable } from '@opencloud-eu/design-system/components'
import { FieldType } from '@opencloud-eu/design-system/helpers'
+import { useCapabilityStore } from '@opencloud-eu/web-pkg'
export default defineComponent({
name: 'UsersList',
@@ -174,7 +175,8 @@ export default defineComponent({
const lastSelectedUserIndex = ref(0)
const lastSelectedUserId = ref(null)
-
+ const capabilityStore = useCapabilityStore()
+ const { graphUsersEditLoginAllowedDisabled } = storeToRefs(capabilityStore)
const userSettingsStore = useUserSettingsStore()
const { users, selectedUsers } = storeToRefs(userSettingsStore)
@@ -337,7 +339,7 @@ export default defineComponent({
)
const fields = computed(() => {
- return [
+ const cols: FieldType[] = [
{
name: 'select',
title: '',
@@ -372,21 +374,27 @@ export default defineComponent({
title: $gettext('Role'),
type: 'slot',
sortable: true
- },
- {
+ }
+ ]
+
+ if (!graphUsersEditLoginAllowedDisabled.value) {
+ cols.push({
name: 'accountEnabled',
title: $gettext('Login'),
type: 'slot',
sortable: true
- },
- {
- name: 'actions',
- title: $gettext('Actions'),
- sortable: false,
- type: 'slot',
- alignH: 'right'
- }
- ]
+ })
+ }
+
+ cols.push({
+ name: 'actions',
+ title: $gettext('Actions'),
+ sortable: false,
+ type: 'slot',
+ alignH: 'right'
+ })
+
+ return cols
})
const markInstance = ref(null)
diff --git a/packages/web-app-admin-settings/src/views/Users.vue b/packages/web-app-admin-settings/src/views/Users.vue
index 7e24d78fe0..16c6ccc19c 100644
--- a/packages/web-app-admin-settings/src/views/Users.vue
+++ b/packages/web-app-admin-settings/src/views/Users.vue
@@ -183,6 +183,7 @@ export default defineComponent({
const route = useRoute()
const capabilityStore = useCapabilityStore()
const capabilityRefs = storeToRefs(capabilityStore)
+ const { graphUsersEditLoginAllowedDisabled } = storeToRefs(capabilityStore)
const clientService = useClientService()
const configStore = useConfigStore()
@@ -393,7 +394,7 @@ export default defineComponent({
...unref(editQuotaActions),
...unref(addToGroupsActions),
...unref(removeFromGroupsActions),
- ...unref(editLoginActions)
+ ...(!graphUsersEditLoginAllowedDisabled.value ? unref(editLoginActions) : [])
].filter((item) => item.isVisible({ resources: unref(selectedUsers) }))
})
diff --git a/packages/web-client/src/ocs/capabilities.ts b/packages/web-client/src/ocs/capabilities.ts
index 57408cbef9..627d121f4a 100644
--- a/packages/web-client/src/ocs/capabilities.ts
+++ b/packages/web-client/src/ocs/capabilities.ts
@@ -172,6 +172,7 @@ export interface Capabilities {
create_disabled?: boolean
delete_disabled?: boolean
read_only_attributes?: string[]
+ edit_login_allowed_disabled?: boolean
}
}
}
diff --git a/packages/web-pkg/src/composables/piniaStores/capabilities.ts b/packages/web-pkg/src/composables/piniaStores/capabilities.ts
index e639d372f5..524d033275 100644
--- a/packages/web-pkg/src/composables/piniaStores/capabilities.ts
+++ b/packages/web-pkg/src/composables/piniaStores/capabilities.ts
@@ -44,7 +44,8 @@ const defaultValues = {
change_password_self_disabled: true,
create_disabled: false,
delete_disabled: false,
- read_only_attributes: [] as string[]
+ read_only_attributes: [] as string[],
+ edit_login_allowed_disabled: false
}
},
notifications: {
@@ -92,6 +93,9 @@ export const useCapabilityStore = defineStore('capabilities', () => {
const graphUsersReadOnlyAttributes = computed(
() => unref(capabilities).graph.users.read_only_attributes
)
+ const graphUsersEditLoginAllowedDisabled = computed(
+ () => unref(capabilities).graph.users.edit_login_allowed_disabled
+ )
const filesAppProviders = computed(() => unref(capabilities).files.app_providers)
const filesFavorites = computed(() => unref(capabilities).files.favorites)
@@ -155,6 +159,7 @@ export const useCapabilityStore = defineStore('capabilities', () => {
graphUsersCreateDisabled,
graphUsersDeleteDisabled,
graphUsersChangeSelfPasswordDisabled,
+ graphUsersEditLoginAllowedDisabled,
graphUsersReadOnlyAttributes,
filesAppProviders,
filesFavorites,