This commit is contained in:
jaseg 2011-12-06 22:01:58 +01:00
commit e9f6a10039
6 changed files with 74 additions and 34 deletions

View file

@ -280,11 +280,11 @@ Example returns:
exports.setPublicStatus = function(padID, publicStatus, callback)
{
//ensure this is a group pad
if(padID.indexOf("$") == -1)
/*if(padID.indexOf("$") == -1)
{
callback({stop: "You can only get/set the publicStatus of pads that belong to a group"});
return;
}
}*/
//get the pad
getPadSafe(padID, true, function(err, pad)
@ -349,8 +349,8 @@ exports.setPassword = function(padID, password, callback)
//ensure this is a group pad
if(padID.indexOf("$") == -1)
{
callback({stop: "You can only get/set the password of pads that belong to a group"});
return;
//callback({stop: "You can only get/set the password of pads that belong to a group"});
//return;
}
//get the pad

View file

@ -202,7 +202,7 @@ exports.createGroupPad = function(groupID, padName, text, callback)
}
});
},
//ensure pad does not exists
//ensure pad does not exist
function (callback)
{
padManager.doesPadExists(padID, function(err, exists)
@ -278,8 +278,7 @@ function randomString(len)
var randomstring = '';
for (var i = 0; i < len; i++)
{
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum, rnum + 1);
randomstring += chars[Math.floor(Math.random() * chars.length)];
}
return randomstring;
}

View file

@ -52,7 +52,7 @@ Class('Pad', {
publicStatus : {
is: 'rw',
init: false,
init: true,
getterName : 'getPublicStatus'
}, //publicStatus
@ -486,7 +486,11 @@ Class('Pad', {
},
setPassword: function(password)
{
this.passwordHash = password == null ? null : hash(password, generateSalt());
if(password == null){
this.passwordHash = null;
}else{
this.passwordHash = hash(password, generateSalt());
}
db.setSub("pad:"+this.id, ["passwordHash"], this.passwordHash);
},
getPasswordSalt: function()
@ -520,8 +524,7 @@ function generateSalt()
var randomstring = '';
for (var i = 0; i < len; i++)
{
var rnum = Math.floor(Math.random() * charset.length);
randomstring += charset[rnum];
randomstring += chars[Math.floor(Math.random() * chars.length)];
}
return randomstring;
}

View file

@ -35,7 +35,7 @@ var sessionManager = require("./SessionManager");
exports.checkAccess = function (padID, sessionID, token, password, callback)
{
// it's not a group pad, means we can grant access
if(padID.indexOf("$") == -1)
/*if(padID.indexOf("$") == -1)
{
//get author for this token
authorManager.getAuthor4Token(token, function(err, author)
@ -46,7 +46,7 @@ exports.checkAccess = function (padID, sessionID, token, password, callback)
//don't continue
return;
}
}*/
var groupID = padID.split("$")[0];
var padExists = false;

View file

@ -112,7 +112,7 @@ exports.doImport = function(req, res, padId)
//convert file to text
function(callback)
{
var randNum = Math.floor(Math.random()*new Date().getTime());
var randNum = Math.floor(Math.random()*0xFFFFFFFF);
destFile = tempDirectory + "eplite_import_" + randNum + ".txt";
abiword.convertFile(srcFile, destFile, "txt", callback);
},
@ -136,10 +136,13 @@ exports.doImport = function(req, res, padId)
//node on windows has a delay on releasing of the file lock.
//We add a 100ms delay to work around this
setTimeout(function()
{
callback(err);
}, 100);
if(os.type().indexOf("Windows") > -1)
{
setTimeout(function()
{
callback(err);
}, 100);
}
});
},

View file

@ -69,7 +69,7 @@
font-weight: bold;
font-size: 15px
}
input[type="text"] {
input[type="text"], input[type="password"] {
width: 243px;
padding: 10px 47px 10px 10px;
background: #fff;
@ -78,7 +78,13 @@
border-radius: 3px;
text-shadow: 0 0 1px #fff
}
input[type="submit"] {
#usepwlabel {
display: inline;
}
#usePasswordContainer {
margin: 10px 0 5px 0
}
input[type="submit"] {
width: 45px;
margin-left: -50px;
padding: 8px
@ -88,39 +94,68 @@
</style>
<link href="static/custom/index.css" rel="stylesheet">
<script src="static/custom/index.js"></script>
<script src="static/js/jquery.min.js"></script>
<div id="container">
<div id="button" onclick="go2Random()">New Pad</div><br><div id="label">or create/open a Pad with the name</div>
<form action="#" onsubmit="go2Name();return false;">
<input type="text" id="padname" autofocus>
<input type="submit" value="OK">
<input type="text" id="padname" autofocus/>
<input type="submit" value="OK"/><br/>
<div id="usePasswordContainer"><input type="checkbox" id="usePassword" onclick="updatePasswordField()"/><label for="usePassword"><div id="usepwlabel">Use password</div></label></div>
<div id="passwordFieldContainer"><input type="password" id="passwordField"/></div>
</form>
</div>
<script>
function go2Name()
{
var padname = document.getElementById("padname").value;
padname.length > 0 ? window.location = "p/" + padname : alert("Please enter a name")
var padname = $("#padname").val();
if(padname.length > 0){
if($("#passwordField").val().length>0)
{
$.get("api/1/createPad", {apikey: "o8PJ496RtbcwoMQGgDyjoOmyq5wJ8dON", padID: padname}, function(data){
$.get("api/1/setPassword", {apikey: "o8PJ496RtbcwoMQGgDyjoOmyq5wJ8dON", padID: padname, password: $("#passwordField").val()}, function(data){
window.location = "p/" + padname;
});
});
}
else
{
window.location = "p/" + padname;
}
}
else
{
alert("Please enter a name");
}
}
function go2Random()
{
window.location = "p/" + randomPadName();
$("#padname").val(randomPadName());
go2Name();
}
function randomPadName()
{
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var string_length = 10;
var randomstring = '';
for (var i = 0; i < string_length; i++)
for (var i = 0; i < 10; i++)
{
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum, rnum + 1);
randomstring += chars[Math.floor(Math.random() * chars.length)];
}
return randomstring;
}
}
//start the costum js
if(typeof costumStart == "function") costumStart();
function updatePasswordField()
{
if($("#usePassword:checked").val()){
$("#passwordFieldContainer").css("display", "block");
}
else
{
$("#passwordFieldContainer").css("display", "none");
}
}
updatePasswordField();
if(typeof customStart == "function") customStart();
</script>
</html>