Skip to content

Commit

Permalink
fix: load settings only if spaces capability enabled (quickfix)
Browse files Browse the repository at this point in the history
  • Loading branch information
kulmann committed Aug 16, 2022
1 parent 666b497 commit bcb984f
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 49 deletions.
81 changes: 51 additions & 30 deletions packages/web-runtime/src/services/auth/userManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -168,37 +168,14 @@ export class UserManager extends OidcUserManager {
accessToken
)
graphUser = await graphClient.users.getMe()
const {
data: { bundles: roles }
} = await axios.post(
'/api/v0/settings/roles-list',
{},
{
headers: {
authorization: `Bearer ${accessToken}`
}
}
)

const [roles, settings] = await Promise.all([
this.fetchRoles({ accessToken }),
this.fetchSettings()
])
this.store.commit('SET_ROLES', roles)
this.store.commit('SET_SETTINGS_VALUES', settings)

const userAssignmentResponse = await axios.post(
'/api/v0/settings/assignments-list',
{
account_uuid: graphUser.data.id
},
{
headers: {
authorization: `Bearer ${accessToken}`
}
}
)
const assignments = userAssignmentResponse.data?.assignments
const roleAssignment = assignments.find((assignment) => 'roleId' in assignment)

if (roleAssignment) {
role = roles.find((role) => role.id === roleAssignment.roleId)
}
role = await this.fetchRole({ graphUser, accessToken, roles })
}
const [user, userGroups] = await Promise.all([
await this.clientService.owncloudSdk.users.getUser(login.id),
Expand All @@ -218,8 +195,52 @@ export class UserManager extends OidcUserManager {
if (!this.store.getters.capabilities.spaces?.enabled && user.quota) {
this.store.commit('SET_QUOTA', user.quota)
}
}

await this.store.dispatch('loadSettingsValues')
private async fetchRoles({ accessToken = '' }): Promise<any> {
try {
const {
data: { bundles: roles }
} = await axios.post(
'/api/v0/settings/roles-list',
{},
{
headers: {
authorization: `Bearer ${accessToken}`
}
}
)
return roles
} catch (e) {
console.error(e)
return []
}
}

private async fetchSettings(): Promise<any> {
try {
return await this.clientService.owncloudSdk.settings.getSettingsValues()
} catch (e) {
console.error(e)
return null
}
}

private async fetchRole({ graphUser, accessToken, roles }): Promise<any> {
const userAssignmentResponse = await axios.post(
'/api/v0/settings/assignments-list',
{
account_uuid: graphUser.data.id
},
{
headers: {
authorization: `Bearer ${accessToken}`
}
}
)
const assignments = userAssignmentResponse.data?.assignments
const roleAssignment = assignments.find((assignment) => 'roleId' in assignment)
return roleAssignment ? roles.find((role) => role.id === roleAssignment.roleId) : null
}

private async fetchCapabilities({ accessToken = '' }): Promise<void> {
Expand Down
19 changes: 0 additions & 19 deletions packages/web-runtime/src/store/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,6 @@ const state = {
const actions = {
clearSettingsValues({ commit }) {
commit('SET_SETTINGS_VALUES', null)
},

async loadSettingsValues({ commit, state, dispatch }) {
const oldSettingsValues = state.settingsValues
commit('SET_SETTINGS_VALUES', null)
try {
const values = await this._vm.$client.settings.getSettingsValues()
commit('SET_SETTINGS_VALUES', values)
} catch (error) {
commit('SET_SETTINGS_VALUES', oldSettingsValues)
dispatch('showMessage', {
title: 'Failed to load settings values.',
desc: error.response.statusText,
status: 'danger',
autoClose: {
enabled: true
}
})
}
}
}

Expand Down

0 comments on commit bcb984f

Please sign in to comment.