auth.js 1.8 KB

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