auth.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import store from '@/store'
  2. import {isArray} from 'lodash'
  3. function authPermission(permission) {
  4. // 配置*跳过验证
  5. if(permission == '*') return true
  6. const all_permission = "*:*:*"
  7. const permissions = store.getters && store.getters.permissions
  8. if (permission && permission.length > 0 && isArray(permissions)) {
  9. return permissions.some(v => {
  10. return all_permission === v || v === permission
  11. })
  12. } else {
  13. return false
  14. }
  15. }
  16. function authRole(role) {
  17. const super_admin = "admin"
  18. const roles = store.getters && store.getters.roles
  19. if (role && role.length > 0) {
  20. return roles.some(v => {
  21. return super_admin === v || v === role
  22. })
  23. } else {
  24. return false
  25. }
  26. }
  27. export default {
  28. // 验证用户是否具备某权限
  29. hasPermi(permission) {
  30. return authPermission(permission)
  31. },
  32. // 验证用户是否含有指定权限,只需包含其中一个
  33. hasPermiOr(permissions) {
  34. return permissions.some(item => {
  35. return authPermission(item)
  36. })
  37. },
  38. // 验证用户是否含有指定权限,必须全部拥有
  39. hasPermiAnd(permissions) {
  40. return permissions.every(item => {
  41. return authPermission(item)
  42. })
  43. },
  44. // 验证用户是否具备某角色
  45. hasRole(role) {
  46. return authRole(role)
  47. },
  48. // 验证用户是否含有指定角色,只需包含其中一个
  49. hasRoleOr(roles) {
  50. return roles.some(item => {
  51. return authRole(item)
  52. })
  53. },
  54. // 验证用户是否含有指定角色,必须全部拥有
  55. hasRoleAnd(roles) {
  56. return roles.every(item => {
  57. return authRole(item)
  58. })
  59. }
  60. }