- Add Token model with CRUD endpoints (/api/tokens, /auth/tokens) - Support Basic auth with token:<secret> for built-in users - Implement full NTLMv2 handshake for Windows WebDAV clients - Add SSO token auth via check_permissions() proxy - Hydrate request auth context from session or Authorization header - Persist session cookie after successful Authorization-based login - Add secure flag to session cookies based on request scheme - Add frontend UserTokensModal for creating/revoking tokens - Fix devserver to run workspace source via python -m cista - Add tests for token CRUD and file auth (Basic, NTLM, session) - Remove proactive WWW-Authenticate advertisement
85 lines
2.1 KiB
TypeScript
85 lines
2.1 KiB
TypeScript
import Client from '@/repositories/Client'
|
|
import { useMainStore } from '@/stores/main'
|
|
export const url_login = '/auth/login'
|
|
export const url_logout = '/auth/api/logout'
|
|
export const url_password = '/auth/password-change'
|
|
|
|
export async function loginUser(username: string, password: string) {
|
|
const user = await Client.post(url_login, {
|
|
username,
|
|
password
|
|
})
|
|
return user
|
|
}
|
|
export async function logoutUser() {
|
|
const data = await Client.post(url_logout)
|
|
return data
|
|
}
|
|
|
|
export async function changePassword(username: string, passwordChange: string, password: string) {
|
|
const data = await Client.post(url_password, {
|
|
username,
|
|
passwordChange,
|
|
password
|
|
})
|
|
return data
|
|
}
|
|
|
|
export const url_users = '/auth/users'
|
|
|
|
export async function listUsers() {
|
|
const data = await Client.get(url_users)
|
|
return data
|
|
}
|
|
|
|
export async function createUser(username: string, password?: string, privileged?: boolean) {
|
|
const data = await Client.post(url_users, {
|
|
username,
|
|
password,
|
|
privileged
|
|
})
|
|
return data
|
|
}
|
|
|
|
export async function updateUser(username: string, changes: { password?: string, privileged?: boolean }) {
|
|
const data = await Client.put(`${url_users}/${username}`, changes)
|
|
return data
|
|
}
|
|
|
|
export async function deleteUser(username: string) {
|
|
const data = await Client.delete(`${url_users}/${username}`)
|
|
return data
|
|
}
|
|
|
|
export async function updatePublic(isPublic: boolean) {
|
|
const data = await Client.put('/api/config/public', { public: isPublic })
|
|
return data
|
|
}
|
|
|
|
export async function updateServerName(name: string) {
|
|
const data = await Client.put('/api/config/name', { name })
|
|
return data
|
|
}
|
|
|
|
export async function getServerConfig() {
|
|
const data = await Client.get('/api/config')
|
|
return data as { name: string, public: boolean }
|
|
}
|
|
|
|
export const url_tokens = '/api/tokens'
|
|
|
|
export async function listTokens() {
|
|
const data = await Client.get(url_tokens)
|
|
return data
|
|
}
|
|
|
|
export async function createToken(name: string) {
|
|
const data = await Client.post(url_tokens, { name })
|
|
return data
|
|
}
|
|
|
|
export async function deleteToken(tokenId: string) {
|
|
const data = await Client.delete(`${url_tokens}/${tokenId}`)
|
|
return data
|
|
}
|