swigFunctions.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. module.exports = function(crowi, app, 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. locals.facebookLoginEnabled = function() {
  8. var config = crowi.getConfig()
  9. return config.crowi['facebook:appId'] && config.crowi['facebook:secret'];
  10. };
  11. locals.googleLoginEnabled = function() {
  12. var config = crowi.getConfig()
  13. return config.crowi['google:clientId'] && config.crowi['google:clientSecret'];
  14. };
  15. locals.searchConfigured = function() {
  16. if (crowi.getSearcher()) {
  17. return true;
  18. }
  19. return false;
  20. };
  21. locals.slackConfigured = function() {
  22. var config = crowi.getConfig()
  23. if (Config.hasSlackToken(config)) {
  24. return true;
  25. }
  26. return false;
  27. };
  28. locals.isUploadable = function() {
  29. var config = crowi.getConfig()
  30. return Config.isUploadable(config);
  31. };
  32. locals.isUserPageList = function(path) {
  33. if (path.match(/^\/user\/[^\/]+\/$/)) {
  34. return true;
  35. }
  36. return false;
  37. };
  38. locals.userPageRoot = function(user) {
  39. if (!user || !user.username) {
  40. return '';
  41. }
  42. return '/user/' + user.username;
  43. };
  44. locals.css = {
  45. grant: function (pageData) {
  46. if (!pageData) {
  47. return '';
  48. }
  49. switch (pageData.grant) {
  50. case Page.GRANT_PUBLIC:
  51. return 'grant-public';
  52. case Page.GRANT_RESTRICTED:
  53. return 'grant-restricted';
  54. //case Page.GRANT_SPECIFIED:
  55. // return 'grant-specified';
  56. // break;
  57. case Page.GRANT_OWNER:
  58. return 'grant-owner';
  59. default:
  60. break;
  61. }
  62. return '';
  63. },
  64. userStatus: function (user) {
  65. //debug('userStatus', user._id, user.usename, user.status);
  66. switch (user.status) {
  67. case User.STATUS_REGISTERED:
  68. return 'label-info';
  69. case User.STATUS_ACTIVE:
  70. return 'label-success';
  71. case User.STATUS_SUSPENDED:
  72. return 'label-warning';
  73. case User.STATUS_DELETED:
  74. return 'label-danger';
  75. case User.STATUS_INVITED:
  76. return 'label-info';
  77. default:
  78. break;
  79. }
  80. return '';
  81. },
  82. };
  83. };