fix: add can_view_cloud_data to login and profile API responses

- Add can_view_cloud_data field to auth login response
- Add can_view_cloud_data field to agent profile response
- Fetch latest user permissions from /agent/profile on agent layout mount
- Update localStorage with latest can_view_cloud_data value
This commit is contained in:
2026-05-11 00:15:21 +08:00
parent df4ad079f3
commit 6dcb5cde02
3 changed files with 37 additions and 14 deletions
+22 -1
View File
@@ -9,6 +9,7 @@ import TeamSwitcher from '@/components/app-sidebar/team-switcher.vue'
import LanguageChange from '@/components/language-change.vue'
import ThemePopover from '@/components/custom-theme/theme-popover.vue'
import ToggleTheme from '@/components/toggle-theme.vue'
import api from '@/services/api'
const router = useRouter()
const { t } = useI18n()
@@ -21,7 +22,7 @@ const user = reactive({
can_view_cloud_data: false,
})
onMounted(() => {
onMounted(async () => {
const storedUser = localStorage.getItem('user')
if (storedUser) {
try {
@@ -36,6 +37,26 @@ onMounted(() => {
console.error('Failed to parse user from localStorage', e)
}
}
try {
const data = await api.get<any>('/agent/profile')
if (data) {
user.name = data.username || user.name
user.email = data.email || user.email
user.avatar = data.avatar || user.avatar
user.can_view_cloud_data = data.can_view_cloud_data || false
const storedUser = localStorage.getItem('user')
if (storedUser) {
const parsed = JSON.parse(storedUser)
parsed.can_view_cloud_data = data.can_view_cloud_data || false
parsed.username = data.username || parsed.username
localStorage.setItem('user', JSON.stringify(parsed))
}
}
}
catch {
// ignore
}
})
const teams = [