mirror of
https://github.com/hpd840321/craftlabs-authorization-sdk.git
synced 2026-06-09 18:10:30 +08:00
feat(m11): add v-permission directive and button-level permission codes
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { useAuthStore } from '../stores/auth'
|
||||
|
||||
export default {
|
||||
mounted(el, binding) {
|
||||
const auth = useAuthStore()
|
||||
const requiredPermission = binding.value
|
||||
|
||||
if (!requiredPermission) return
|
||||
|
||||
const userPermissions = auth.permissions || []
|
||||
|
||||
const hasPermission = userPermissions.some(p => {
|
||||
if (typeof p === 'string') {
|
||||
if (requiredPermission.endsWith(':*')) {
|
||||
const prefix = requiredPermission.slice(0, -2)
|
||||
return p.startsWith(prefix)
|
||||
}
|
||||
return p === requiredPermission || p === '*:*'
|
||||
}
|
||||
return false
|
||||
})
|
||||
|
||||
if (!hasPermission) {
|
||||
el.parentNode?.removeChild(el)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user