mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-12-28 14:49:38 +00:00
Change: config page to multiple pages, Add: user permissions for accessible libraries #120, Add: map genre metadata tag #114, Add: experimental audio player keyboard controls #121, Add: view user audiobook progress list
This commit is contained in:
parent
7d9ed75a28
commit
ff1eeda468
42 changed files with 957 additions and 464 deletions
|
|
@ -18,14 +18,18 @@ export const state = () => ({
|
|||
routeHistory: [],
|
||||
showExperimentalFeatures: false,
|
||||
backups: [],
|
||||
bookshelfBookIds: []
|
||||
bookshelfBookIds: [],
|
||||
openModal: null
|
||||
})
|
||||
|
||||
export const getters = {
|
||||
getIsAudiobookSelected: state => audiobookId => {
|
||||
return !!state.selectedAudiobooks.includes(audiobookId)
|
||||
},
|
||||
getNumAudiobooksSelected: state => state.selectedAudiobooks.length
|
||||
getNumAudiobooksSelected: state => state.selectedAudiobooks.length,
|
||||
getAudiobookIdStreaming: state => {
|
||||
return state.streamAudiobook ? state.streamAudiobook.id : null
|
||||
}
|
||||
}
|
||||
|
||||
export const actions = {
|
||||
|
|
@ -155,5 +159,8 @@ export const mutations = {
|
|||
},
|
||||
setBackups(state, val) {
|
||||
state.backups = val.sort((a, b) => b.createdAt - a.createdAt)
|
||||
},
|
||||
setOpenModal(state, val) {
|
||||
state.openModal = val
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ export const state = () => ({
|
|||
lastLoad: 0,
|
||||
listeners: [],
|
||||
currentLibraryId: 'main',
|
||||
showModal: false,
|
||||
folders: [],
|
||||
folderLastUpdate: 0
|
||||
})
|
||||
|
|
@ -42,12 +41,18 @@ export const actions = {
|
|||
return []
|
||||
})
|
||||
},
|
||||
fetch({ state, commit, rootState }, libraryId) {
|
||||
fetch({ state, commit, rootState, rootGetters }, libraryId) {
|
||||
if (!rootState.user || !rootState.user.user) {
|
||||
console.error('libraries/fetch - User not set')
|
||||
return false
|
||||
}
|
||||
|
||||
var canUserAccessLibrary = rootGetters['user/getCanAccessLibrary'](libraryId)
|
||||
if (!canUserAccessLibrary) {
|
||||
console.warn('Access not allowed to library')
|
||||
return false
|
||||
}
|
||||
|
||||
var library = state.libraries.find(lib => lib.id === libraryId)
|
||||
if (library) {
|
||||
commit('setCurrentLibrary', libraryId)
|
||||
|
|
@ -102,9 +107,6 @@ export const mutations = {
|
|||
setFoldersLastUpdate(state) {
|
||||
state.folderLastUpdate = Date.now()
|
||||
},
|
||||
setShowModal(state, val) {
|
||||
state.showModal = val
|
||||
},
|
||||
setLastLoad(state) {
|
||||
state.lastLoad = Date.now()
|
||||
},
|
||||
|
|
|
|||
|
|
@ -33,6 +33,19 @@ export const getters = {
|
|||
},
|
||||
getUserCanUpload: (state) => {
|
||||
return state.user && state.user.permissions ? !!state.user.permissions.upload : false
|
||||
},
|
||||
getUserCanAccessAllLibraries: (state) => {
|
||||
return state.user && state.user.permissions ? !!state.user.permissions.accessAllLibraries : false
|
||||
},
|
||||
getLibrariesAccessible: (state, getters) => {
|
||||
if (!state.user) return []
|
||||
if (getters.getUserCanAccessAllLibraries) return []
|
||||
return state.user.librariesAccessible || []
|
||||
},
|
||||
getCanAccessLibrary: (state, getters) => (libraryId) => {
|
||||
if (!state.user) return false
|
||||
if (getters.getUserCanAccessAllLibraries) return true
|
||||
return getters.getLibrariesAccessible.includes(libraryId)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -60,6 +73,7 @@ export const actions = {
|
|||
export const mutations = {
|
||||
setUser(state, user) {
|
||||
state.user = user
|
||||
|
||||
if (user) {
|
||||
if (user.token) localStorage.setItem('token', user.token)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ export const state = () => ({
|
|||
})
|
||||
|
||||
export const getters = {
|
||||
|
||||
getIsUserOnline: state => id => {
|
||||
return state.users.find(u => u.id === id)
|
||||
}
|
||||
}
|
||||
|
||||
export const actions = {
|
||||
|
|
@ -12,6 +14,9 @@ export const actions = {
|
|||
}
|
||||
|
||||
export const mutations = {
|
||||
resetUsers(state) {
|
||||
state.users = []
|
||||
},
|
||||
updateUser(state, user) {
|
||||
var index = state.users.findIndex(u => u.id === user.id)
|
||||
if (index >= 0) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue