swigFunctions.js 2.1 KB

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