swigFunctions.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. module.exports = function(crowi, app, req, locals) {
  2. var debug = require('debug')('crowi:lib:swigFunctions')
  3. , Page = crowi.model('Page')
  4. , Config = crowi.model('Config')
  5. , User = crowi.model('User')
  6. ;
  7. // token getter
  8. locals._csrf = function() {
  9. debug('csrfToken get', req.csrfToken);
  10. return req.csrfToken;
  11. };
  12. locals.facebookLoginEnabled = function() {
  13. var config = crowi.getConfig()
  14. return config.crowi['facebook:appId'] && config.crowi['facebook:secret'];
  15. };
  16. locals.googleLoginEnabled = function() {
  17. var config = crowi.getConfig()
  18. return config.crowi['google:clientId'] && config.crowi['google:clientSecret'];
  19. };
  20. locals.searchConfigured = function() {
  21. if (crowi.getSearcher()) {
  22. return true;
  23. }
  24. return false;
  25. };
  26. locals.slackConfigured = function() {
  27. var config = crowi.getConfig()
  28. if (Config.hasSlackToken(config)) {
  29. return true;
  30. }
  31. return false;
  32. };
  33. locals.isUploadable = function() {
  34. var config = crowi.getConfig()
  35. return Config.isUploadable(config);
  36. };
  37. locals.isUserPageList = function(path) {
  38. if (path.match(/^\/user\/[^\/]+\/$/)) {
  39. return true;
  40. }
  41. return false;
  42. };
  43. locals.isTopPage = function() {
  44. var path = req.path || '';
  45. if (path === '/') {
  46. return true;
  47. }
  48. return false;
  49. };
  50. locals.isTrashPage = function() {
  51. var path = req.path || '';
  52. if (path.match(/^\/trash\/.*/)) {
  53. return true;
  54. }
  55. return false;
  56. };
  57. locals.userPageRoot = function(user) {
  58. if (!user || !user.username) {
  59. return '';
  60. }
  61. return '/user/' + user.username;
  62. };
  63. locals.css = {
  64. grant: function (pageData) {
  65. if (!pageData) {
  66. return '';
  67. }
  68. switch (pageData.grant) {
  69. case Page.GRANT_PUBLIC:
  70. return 'grant-public';
  71. case Page.GRANT_RESTRICTED:
  72. return 'grant-restricted';
  73. //case Page.GRANT_SPECIFIED:
  74. // return 'grant-specified';
  75. // break;
  76. case Page.GRANT_OWNER:
  77. return 'grant-owner';
  78. default:
  79. break;
  80. }
  81. return '';
  82. },
  83. userStatus: function (user) {
  84. //debug('userStatus', user._id, user.usename, user.status);
  85. switch (user.status) {
  86. case User.STATUS_REGISTERED:
  87. return 'label-info';
  88. case User.STATUS_ACTIVE:
  89. return 'label-success';
  90. case User.STATUS_SUSPENDED:
  91. return 'label-warning';
  92. case User.STATUS_DELETED:
  93. return 'label-danger';
  94. case User.STATUS_INVITED:
  95. return 'label-info';
  96. default:
  97. break;
  98. }
  99. return '';
  100. },
  101. };
  102. };