permission.js 659 B

1234567891011121314151617181920212223242526272829
  1. /**
  2. * 按钮权限验证
  3. * uni中使用vue自定义指令报错
  4. * @author yxk
  5. */
  6. import store from '../store'
  7. import { deepCopy } from '../utils/lib.js'
  8. /**
  9. * 权限验证
  10. * @param {String} action 权限动作 eg: crm.leads.delete
  11. */
  12. export default function check_permission(action) {
  13. if (!action) return true
  14. let authData = deepCopy(store.state.user.authData || null)
  15. if (!authData) return false
  16. const arr = action.split('.')
  17. if (arr.length === 0) return true
  18. for (let i = 0; i < arr.length; i++) {
  19. const key = arr[i]
  20. authData = authData[key]
  21. if (!authData) {
  22. return false
  23. } else if (arr.length - 1 === i) {
  24. return true
  25. }
  26. }
  27. }