auth.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import useUserStore from '@/store/modules/user'
  2. function authPermission(permission) {
  3. const all_permission = "*:*:*";
  4. const permissions = useUserStore().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 = useUserStore().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. export default {
  25. // 验证用户是否具备某权限
  26. hasPermi(permission) {
  27. return authPermission(permission);
  28. },
  29. // 验证用户是否没有某权限
  30. hasNoPermi(permission) {
  31. return !authPermission(permission);
  32. },
  33. // 验证用户是否含有指定权限,只需包含其中一个
  34. hasPermiOr(permissions) {
  35. return permissions.some(item => {
  36. return authPermission(item)
  37. })
  38. },
  39. // 验证用户是否含有指定权限,必须全部拥有
  40. hasPermiAnd(permissions) {
  41. return permissions.every(item => {
  42. return authPermission(item)
  43. })
  44. },
  45. // 验证用户是否具备某角色
  46. hasRole(role) {
  47. return authRole(role);
  48. },
  49. // 验证用户是否含有指定角色,只需包含其中一个
  50. hasRoleOr(roles) {
  51. return roles.some(item => {
  52. return authRole(item)
  53. })
  54. },
  55. // 验证用户是否含有指定角色,必须全部拥有
  56. hasRoleAnd(roles) {
  57. return roles.every(item => {
  58. return authRole(item)
  59. })
  60. }
  61. }