permission.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import store from '@/store'
  2. /**
  3. * 字符权限校验
  4. * @param {Array} value 校验值
  5. * @returns {Boolean}
  6. */
  7. export function checkPermi(value) {
  8. if (value && value instanceof Array && value.length > 0) {
  9. const permissions = store.getters && store.getters.permissions
  10. console.log('permissionsxxxxxxxx', permissions);
  11. const permissionDatas = value
  12. const all_permission = "*:*:*";
  13. if (!permissions || !Array.isArray(permissions) || permissions.length === 0) {
  14. return false
  15. }
  16. const hasPermission = permissions.some(permission => {
  17. return all_permission === permission || permissionDatas.includes(permission)
  18. })
  19. if (!hasPermission) {
  20. return false
  21. }
  22. return true
  23. } else {
  24. console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
  25. return false
  26. }
  27. }
  28. /**
  29. * 角色权限校验
  30. * @param {Array} value 校验值
  31. * @returns {Boolean}
  32. */
  33. export function checkRole(value) {
  34. if (value && value instanceof Array && value.length > 0) {
  35. const roles = store.getters && store.getters.roles
  36. const permissionRoles = value
  37. const super_admin = "admin";
  38. if (!roles || !Array.isArray(roles) || roles.length === 0) {
  39. return false
  40. }
  41. const hasRole = roles.some(role => {
  42. return super_admin === role || permissionRoles.includes(role)
  43. })
  44. if (!hasRole) {
  45. return false
  46. }
  47. return true
  48. } else {
  49. console.error(`need roles! Like checkRole="['admin','editor']"`)
  50. return false
  51. }
  52. }