This commit is contained in:
Josh Pruim 2012-12-03 07:56:16 -08:00
commit 78361d4cc9
4 changed files with 23 additions and 10 deletions

View file

@ -295,10 +295,10 @@ Group pads are normal pads, but with the name schema GROUPID$PADNAME. A security
#### createPad(padID [, text]) #### createPad(padID [, text])
* API >= 1 * API >= 1
creates a new (non-group) pad. Note that if you need to create a group Pad, you should call **createGroupPad**. creates a new (non-group) pad. Note that if you need to create a group Pad, you should call **createGroupPad**. Returns the actual PadID that was recorded (Checked against a regex so that nothing breaks when accessed.)
*Example returns:* *Example returns:*
* `{code: 0, message:"ok", data: null}` * `{code: 0, message:"ok", data: {"padID":"asdf_as_d"}}`
* `{code: 1, message:"pad does already exist", data: null}` * `{code: 1, message:"pad does already exist", data: null}`
#### getRevisionsCount(padID) #### getRevisionsCount(padID)

View file

@ -331,12 +331,12 @@ exports.createPad = function(padID, text, callback)
callback(new customError("createPad can't create group pads","apierror")); callback(new customError("createPad can't create group pads","apierror"));
return; return;
} }
padID = padID.replace(/[;\/\?:@&=\+\$,{}\\\^\[\]\`\|%<>\*#]/gi, '_');
//create pad //create pad
getPadSafe(padID, false, text, function(err) getPadSafe(padID, false, text, function(err)
{ {
if(ERR(err, callback)) return; if(ERR(err, callback)) return;
callback(); callback(null, {padID: padID});
}); });
} }

View file

@ -27,7 +27,11 @@ exports.expressCreateServer = function (hook_name, args, cb) {
//serve pad.html under /p //serve pad.html under /p
args.app.get('/p/:pad', function(req, res, next) args.app.get('/p/:pad', function(req, res, next)
{ {
res.send(eejs.require("ep_etherpad-lite/templates/pad.html", {req: req})); /*if(!!(req.params.pad.match(/[;\/\?:@&=\+\$,{}\\\^\[\]\`\|%<>\*#]/gi))){
res.send(404, "Such a padname is forbidden");
}else{*/
res.send(eejs.require("ep_etherpad-lite/templates/pad.html", {req: req}));
//}
}); });
//serve timeslider.html under /p/$padname/timeslider //serve timeslider.html under /p/$padname/timeslider
@ -35,7 +39,16 @@ exports.expressCreateServer = function (hook_name, args, cb) {
{ {
res.send(eejs.require("ep_etherpad-lite/templates/timeslider.html", {req: req})); res.send(eejs.require("ep_etherpad-lite/templates/timeslider.html", {req: req}));
}); });
args.app.get('/p/:pad/*', function(req, res, next)
{
if(req.url.split("/")[3] == "timeslider"){
//Just a safeguard, sometimes these URLs get messed up and should be
//actually rerouted to the timeslider instead of an error page.
res.send(eejs.require("ep_etherpad-lite/templates/timeslider.html", {req: req}));
}else{
res.send(404, "Such a padname is forbidden");
}
});
//serve favicon.ico from all path levels except as a pad name //serve favicon.ico from all path levels except as a pad name
args.app.get( /\/favicon.ico$/, function(req, res) args.app.get( /\/favicon.ico$/, function(req, res)
{ {

View file

@ -41,7 +41,7 @@
if(language) document.documentElement.lang = language[1]; if(language) document.documentElement.lang = language[1];
})(document) })(document)
</script> </script>
<script type="text/javascript" src="static/js/l10n.js" async></script> <script type="text/javascript" src="static/js/l10n.js"></script>
<style> <style>
html, body { html, body {
@ -168,11 +168,11 @@
<script src="static/custom/index.js"></script> <script src="static/custom/index.js"></script>
<script> <script>
function go2Name() function go2Name()
{ {
var padname = document.getElementById("padname").value;
padname.length > 0 ? window.location = "p/" + padname : alert("Please enter a name") var padname = document.getElementById("padname").value.replace(/[;\/\?:@&=\+\$,{}\\\^\[\]\`\|%<>\*#]/gi, '_');
padname.length > 0 ? window.location = "p/" + padname : alert("Please enter a name");
} }
function go2Random() function go2Random()