auth.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. const stores_user = require("../stores/user.js");
  3. function authPermission(permission) {
  4. const all_permission = "*:*:*";
  5. const permissions = stores_user.useUserStore().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 = stores_user.useUserStore().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. hasPermi(permission) {
  28. return authPermission(permission);
  29. },
  30. // 验证用户是否含有指定权限,只需包含其中一个
  31. hasPermiOr(permissions) {
  32. return permissions.some((item) => {
  33. return authPermission(item);
  34. });
  35. },
  36. // 验证用户是否含有指定权限,必须全部拥有
  37. hasPermiAnd(permissions) {
  38. return permissions.every((item) => {
  39. return authPermission(item);
  40. });
  41. },
  42. // 验证用户是否具备某角色
  43. hasRole(role) {
  44. return authRole(role);
  45. },
  46. // 验证用户是否含有指定角色,只需包含其中一个
  47. hasRoleOr(roles) {
  48. return roles.some((item) => {
  49. return authRole(item);
  50. });
  51. },
  52. // 验证用户是否含有指定角色,必须全部拥有
  53. hasRoleAnd(roles) {
  54. return roles.every((item) => {
  55. return authRole(item);
  56. });
  57. }
  58. };
  59. exports.auth = auth;