acl.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. const logger = require('@alias/logger')('growi:service:AclService'); // eslint-disable-line no-unused-vars
  2. /**
  3. * the service class of AclService
  4. */
  5. class AclService {
  6. constructor(configManager) {
  7. this.configManager = configManager;
  8. this.labels = {
  9. SECURITY_RESTRICT_GUEST_MODE_DENY: 'Deny',
  10. SECURITY_RESTRICT_GUEST_MODE_READONLY: 'Readonly',
  11. SECURITY_REGISTRATION_MODE_OPEN: 'Open',
  12. SECURITY_REGISTRATION_MODE_RESTRICTED: 'Restricted',
  13. SECURITY_REGISTRATION_MODE_CLOSED: 'Closed',
  14. };
  15. }
  16. getIsPublicWikiOnly() {
  17. const publicWikiOnly = process.env.PUBLIC_WIKI_ONLY;
  18. return !!publicWikiOnly;
  19. }
  20. getIsGuestAllowedToRead() {
  21. // return true if puclic wiki mode
  22. if (this.getIsPublicWikiOnly()) {
  23. return true;
  24. }
  25. // return false if undefined
  26. const isRestrictGuestMode = this.configManager.getConfig('crowi', 'security:restrictGuestMode');
  27. if (isRestrictGuestMode) {
  28. return false;
  29. }
  30. return this.labels.SECURITY_RESTRICT_GUEST_MODE_READONLY === isRestrictGuestMode;
  31. }
  32. getRestrictGuestModeLabels() {
  33. const labels = {};
  34. labels[this.labels.SECURITY_RESTRICT_GUEST_MODE_DENY] = 'security_setting.guest_mode.deny';
  35. labels[this.labels.SECURITY_RESTRICT_GUEST_MODE_READONLY] = 'security_setting.guest_mode.readonly';
  36. return labels;
  37. }
  38. getRegistrationModeLabels() {
  39. const labels = {};
  40. labels[this.labels.SECURITY_REGISTRATION_MODE_OPEN] = 'security_setting.registration_mode.open';
  41. labels[this.labels.SECURITY_REGISTRATION_MODE_RESTRICTED] = 'security_setting.registration_mode.restricted';
  42. labels[this.labels.SECURITY_REGISTRATION_MODE_CLOSED] = 'security_setting.registration_mode.closed';
  43. return labels;
  44. }
  45. userUpperLimit() {
  46. // const limit = this.configManager.getConfig('crowi', 'USER_UPPER_LIMIT');
  47. const limit = process.env.USER_UPPER_LIMIT;
  48. if (limit) {
  49. return Number(limit);
  50. }
  51. return 0;
  52. }
  53. }
  54. module.exports = AclService;