auth.js 1.9 KB

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