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:
@@ -620,6 +620,7 @@ func handleGetProfile(c *gin.Context) {
|
|||||||
"avatar": user.Avatar,
|
"avatar": user.Avatar,
|
||||||
"balance": user.Balance,
|
"balance": user.Balance,
|
||||||
"can_create_agent": user.CanCreateAgent,
|
"can_create_agent": user.CanCreateAgent,
|
||||||
|
"can_view_cloud_data": user.CanViewCloudData,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ func (s *AuthService) Login(username, password, agentPath string) (map[string]in
|
|||||||
"role": user.Role,
|
"role": user.Role,
|
||||||
"status": user.Status,
|
"status": user.Status,
|
||||||
"parent_agent_id": user.ParentAgentID,
|
"parent_agent_id": user.ParentAgentID,
|
||||||
|
"can_view_cloud_data": user.CanViewCloudData,
|
||||||
},
|
},
|
||||||
"token": token,
|
"token": token,
|
||||||
}, nil
|
}, nil
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import TeamSwitcher from '@/components/app-sidebar/team-switcher.vue'
|
|||||||
import LanguageChange from '@/components/language-change.vue'
|
import LanguageChange from '@/components/language-change.vue'
|
||||||
import ThemePopover from '@/components/custom-theme/theme-popover.vue'
|
import ThemePopover from '@/components/custom-theme/theme-popover.vue'
|
||||||
import ToggleTheme from '@/components/toggle-theme.vue'
|
import ToggleTheme from '@/components/toggle-theme.vue'
|
||||||
|
import api from '@/services/api'
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
@@ -21,7 +22,7 @@ const user = reactive({
|
|||||||
can_view_cloud_data: false,
|
can_view_cloud_data: false,
|
||||||
})
|
})
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(async () => {
|
||||||
const storedUser = localStorage.getItem('user')
|
const storedUser = localStorage.getItem('user')
|
||||||
if (storedUser) {
|
if (storedUser) {
|
||||||
try {
|
try {
|
||||||
@@ -36,6 +37,26 @@ onMounted(() => {
|
|||||||
console.error('Failed to parse user from localStorage', e)
|
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 = [
|
const teams = [
|
||||||
|
|||||||
Reference in New Issue
Block a user