swigFunctions.js 1.9 KB

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