Merge pull request #589 from geekyd/master

Adds enable/disable PDF export via config
This commit is contained in:
Sheogorath 2017-10-25 15:56:17 +02:00 committed by GitHub
commit be5de239ea
7 changed files with 30 additions and 10 deletions

View file

@ -145,9 +145,10 @@ Environment variables (will overwrite other server configs)
| HMD_LDAP_SEARCHFILTER | `(uid={{username}})` | LDAP filter to search with | | HMD_LDAP_SEARCHFILTER | `(uid={{username}})` | LDAP filter to search with |
| HMD_LDAP_SEARCHATTRIBUTES | no example | LDAP attributes to search with | | HMD_LDAP_SEARCHATTRIBUTES | no example | LDAP attributes to search with |
| HMD_LDAP_TLS_CA | `server-cert.pem, root.pem` | Root CA for LDAP TLS in PEM format (use comma to separate) | | HMD_LDAP_TLS_CA | `server-cert.pem, root.pem` | Root CA for LDAP TLS in PEM format (use comma to separate) |
| HMD_LDAP_PROVIDERNAME | `My institution` | Optional name to be displayed at login form indicating the LDAP provider | | HMD_LDAP_PROVIDERNAME | `My institution` | Optional name to be displayed at login form indicating the LDAP provider |
| HMD_IMGUR_CLIENTID | no example | Imgur API client id | | HMD_IMGUR_CLIENTID | no example | Imgur API client id |
| HMD_EMAIL | `true` or `false` | set to allow email signin | | HMD_EMAIL | `true` or `false` | set to allow email signin |
| HMD_ALLOW_PDF_EXPORT | `true` or `false` | Enable or disable PDF exports |
| HMD_ALLOW_EMAIL_REGISTER | `true` or `false` | set to allow email register (only applied when email is set, default is `true`) | | HMD_ALLOW_EMAIL_REGISTER | `true` or `false` | set to allow email register (only applied when email is set, default is `true`) |
| HMD_IMAGE_UPLOAD_TYPE | `imgur`, `s3` or `filesystem` | Where to upload image. For S3, see our [S3 Image Upload Guide](docs/guides/s3-image-upload.md) | | HMD_IMAGE_UPLOAD_TYPE | `imgur`, `s3` or `filesystem` | Where to upload image. For S3, see our [S3 Image Upload Guide](docs/guides/s3-image-upload.md) |
| HMD_S3_ACCESS_KEY_ID | no example | AWS access key id | | HMD_S3_ACCESS_KEY_ID | no example | AWS access key id |

View file

@ -127,6 +127,10 @@
"HMD_IMGUR_CLIENTID": { "HMD_IMGUR_CLIENTID": {
"description": "Imgur API client id", "description": "Imgur API client id",
"required": false "required": false
},
"HMD_ALLOW_PDF_EXPORT": {
"description": "Enable or disable PDF exports",
"required": false
} }
}, },
"addons": [ "addons": [

View file

@ -94,5 +94,6 @@ module.exports = {
tlsca: undefined tlsca: undefined
}, },
email: true, email: true,
allowemailregister: true allowemailregister: true,
allowpdfexport: true
} }

View file

@ -69,5 +69,6 @@ module.exports = {
tlsca: process.env.HMD_LDAP_TLS_CA tlsca: process.env.HMD_LDAP_TLS_CA
}, },
email: toBooleanConfig(process.env.HMD_EMAIL), email: toBooleanConfig(process.env.HMD_EMAIL),
allowemailregister: toBooleanConfig(process.env.HMD_ALLOW_EMAIL_REGISTER) allowemailregister: toBooleanConfig(process.env.HMD_ALLOW_EMAIL_REGISTER),
allowpdfexport: toBooleanConfig(process.env.HMD_ALLOW_PDF_EXPORT)
} }

View file

@ -1,3 +1,4 @@
'use strict' 'use strict'
const fs = require('fs') const fs = require('fs')
@ -90,6 +91,7 @@ config.isEmailEnable = config.email
config.isGitHubEnable = config.github.clientID && config.github.clientSecret config.isGitHubEnable = config.github.clientID && config.github.clientSecret
config.isGitLabEnable = config.gitlab.clientID && config.gitlab.clientSecret config.isGitLabEnable = config.gitlab.clientID && config.gitlab.clientSecret
config.isLDAPEnable = config.ldap.url config.isLDAPEnable = config.ldap.url
config.isPDFExportEnable = config.allowpdfexport
// generate correct path // generate correct path
config.sslcapath = path.join(appRootPath, config.sslcapath) config.sslcapath = path.join(appRootPath, config.sslcapath)
@ -106,7 +108,7 @@ config.errorpath = path.join(appRootPath, config.errorpath)
config.prettypath = path.join(appRootPath, config.prettypath) config.prettypath = path.join(appRootPath, config.prettypath)
config.slidepath = path.join(appRootPath, config.slidepath) config.slidepath = path.join(appRootPath, config.slidepath)
// maek config readonly // make config readonly
config = deepFreeze(config) config = deepFreeze(config)
module.exports = config module.exports = config

View file

@ -69,6 +69,7 @@ function showIndex (req, res, next) {
ldap: config.isLDAPEnable, ldap: config.isLDAPEnable,
email: config.isEmailEnable, email: config.isEmailEnable,
allowemailregister: config.allowemailregister, allowemailregister: config.allowemailregister,
allowpdfexport: config.allowpdfexport,
signin: req.isAuthenticated(), signin: req.isAuthenticated(),
infoMessage: req.flash('info'), infoMessage: req.flash('info'),
errorMessage: req.flash('error') errorMessage: req.flash('error')
@ -98,7 +99,8 @@ function responseHackMD (res, note) {
google: config.isGoogleEnable, google: config.isGoogleEnable,
ldap: config.isLDAPEnable, ldap: config.isLDAPEnable,
email: config.isEmailEnable, email: config.isEmailEnable,
allowemailregister: config.allowemailregister allowemailregister: config.allowemailregister,
allowpdfexport: config.allowpdfexport
}) })
} }
@ -382,7 +384,12 @@ function noteActions (req, res, next) {
actionInfo(req, res, note) actionInfo(req, res, note)
break break
case 'pdf': case 'pdf':
actionPDF(req, res, note) if (config.allowpdfexport) {
actionPDF(req, res, note)
} else {
logger.error('PDF export failed: Disabled by config. Set "allowpdfexport: true" to enable. Check the documentation for details')
response.errorForbidden(res)
}
break break
case 'gist': case 'gist':
actionGist(req, res, note) actionGist(req, res, note)

View file

@ -70,8 +70,10 @@
</li> </li>
<li role="presentation"><a role="menuitem" class="ui-download-raw-html" tabindex="-1" href="#" target="_self"><i class="fa fa-file-code-o fa-fw"></i> <%= __('Raw HTML') %></a> <li role="presentation"><a role="menuitem" class="ui-download-raw-html" tabindex="-1" href="#" target="_self"><i class="fa fa-file-code-o fa-fw"></i> <%= __('Raw HTML') %></a>
</li> </li>
<li role="presentation"><a role="menuitem" class="ui-download-pdf-beta" tabindex="-1" href="#" target="_self"><i class="fa fa-file-pdf-o fa-fw"></i> PDF (Beta)</a> <% if(allowpdfexport) {%>
</li> <li role="presentation"><a role="menuitem" class="ui-download-pdf-beta" tabindex="-1" href="#" target="_self"><i class="fa fa-file-pdf-o fa-fw"></i> PDF (Beta)</a>
</li>
<% } %>
<li class="divider"></li> <li class="divider"></li>
<li role="presentation"><a role="menuitem" class="ui-help" href="#" data-toggle="modal" data-target=".help-modal"><i class="fa fa-question-circle fa-fw"></i> Help</a> <li role="presentation"><a role="menuitem" class="ui-help" href="#" data-toggle="modal" data-target=".help-modal"><i class="fa fa-question-circle fa-fw"></i> Help</a>
</li> </li>
@ -169,8 +171,10 @@
</li> </li>
<li role="presentation"><a role="menuitem" class="ui-download-raw-html" tabindex="-1" href="#" target="_self"><i class="fa fa-file-code-o fa-fw"></i> <%= __('Raw HTML') %></a> <li role="presentation"><a role="menuitem" class="ui-download-raw-html" tabindex="-1" href="#" target="_self"><i class="fa fa-file-code-o fa-fw"></i> <%= __('Raw HTML') %></a>
</li> </li>
<li role="presentation"><a role="menuitem" class="ui-download-pdf-beta" tabindex="-1" href="#" target="_self"><i class="fa fa-file-pdf-o fa-fw"></i> PDF (Beta)</a> <% if(allowpdfexport) {%>
</li> <li role="presentation"><a role="menuitem" class="ui-download-pdf-beta" tabindex="-1" href="#" target="_self"><i class="fa fa-file-pdf-o fa-fw"></i> PDF (Beta)</a>
</li>
<% } %>
</ul> </ul>
</li> </li>
</ul> </ul>