summaryrefslogtreecommitdiff
path: root/src/node/hooks/express/padreadonly.js
diff options
context:
space:
mode:
authorEgil Moeller <egil.moller@freecode.no>2012-02-26 13:07:51 +0100
committerEgil Moeller <egil.moller@freecode.no>2012-02-26 13:07:51 +0100
commit1239ce7f284821ad4ce51f8219c480ff557a5b86 (patch)
tree83816de3b8855fb89fadcb2383b3f8f81d66daf8 /src/node/hooks/express/padreadonly.js
parent1955bdec9a0f0448e5b04638f0e69ed3b9210f39 (diff)
downloadetherpad-lite-1239ce7f284821ad4ce51f8219c480ff557a5b86.zip
The Big Renaming - etherpad is now an NPM module
Diffstat (limited to 'src/node/hooks/express/padreadonly.js')
-rw-r--r--src/node/hooks/express/padreadonly.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/node/hooks/express/padreadonly.js b/src/node/hooks/express/padreadonly.js
new file mode 100644
index 00000000..60ece0ad
--- /dev/null
+++ b/src/node/hooks/express/padreadonly.js
@@ -0,0 +1,65 @@
+var async = require('async');
+var ERR = require("async-stacktrace");
+var readOnlyManager = require("../../db/ReadOnlyManager");
+var hasPadAccess = require("../../padaccess");
+var exporthtml = require("../../utils/ExportHtml");
+
+exports.expressCreateServer = function (hook_name, args, cb) {
+ //serve read only pad
+ args.app.get('/ro/:id', function(req, res)
+ {
+ var html;
+ var padId;
+ var pad;
+
+ async.series([
+ //translate the read only pad to a padId
+ function(callback)
+ {
+ readOnlyManager.getPadId(req.params.id, function(err, _padId)
+ {
+ if(ERR(err, callback)) return;
+
+ padId = _padId;
+
+ //we need that to tell hasPadAcess about the pad
+ req.params.pad = padId;
+
+ callback();
+ });
+ },
+ //render the html document
+ function(callback)
+ {
+ //return if the there is no padId
+ if(padId == null)
+ {
+ callback("notfound");
+ return;
+ }
+
+ hasPadAccess(req, res, function()
+ {
+ //render the html document
+ exporthtml.getPadHTMLDocument(padId, null, false, function(err, _html)
+ {
+ if(ERR(err, callback)) return;
+ html = _html;
+ callback();
+ });
+ });
+ }
+ ], function(err)
+ {
+ //throw any unexpected error
+ if(err && err != "notfound")
+ ERR(err);
+
+ if(err == "notfound")
+ res.send('404 - Not Found', 404);
+ else
+ res.send(html);
+ });
+ });
+
+} \ No newline at end of file