Skip to content

Commit 34c5fe6

Browse files
author
deiu
committed
Merged from master
2 parents 90630d5 + 973dd14 commit 34c5fe6

6 files changed

Lines changed: 600 additions & 377 deletions

File tree

bin/ldnode.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,11 @@ var argv = require('nomnom')
9797
full: 'default-app',
9898
help: 'URI to use as a default app for resources (default: https://linkeddata.github.io/warp/#/list/)'
9999
})
100-
.parse()
100+
.option('signup', {
101+
help: 'Creates a WebID and sets it as owner',
102+
flag: true
103+
})
104+
.parse();
101105

102106
function bin (argv) {
103107
// Print version and leave

lib/create-app.js

Lines changed: 63 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,77 @@
1-
module.exports = createApp
1+
module.exports = createApp;
22

3-
var express = require('express')
4-
var session = require('express-session')
5-
var uuid = require('node-uuid')
6-
var cors = require('cors')
7-
var LDP = require('./ldp')
8-
var LdpMiddleware = require('./ldp-middleware')
3+
var express = require('express');
4+
var session = require('express-session');
5+
var uuid = require('node-uuid');
6+
var cors = require('cors');
7+
var debug = require('./debug');
8+
var LDP = require('./ldp');
9+
var LdpMiddleware = require('./ldp-middleware');
910
var proxy = require('./handlers/proxy')
10-
var IdentityProvider = require('./identity-provider')
11-
var vhost = require('vhost')
12-
11+
var IdentityProvider = require('./identity-provider');
12+
var vhost = require('vhost');
13+
var path = require('path');
1314
var corsSettings = cors({
14-
methods: [
15-
'OPTIONS', 'HEAD', 'GET',
16-
'PATCH', 'POST', 'PUT', 'DELETE'
17-
],
18-
exposedHeaders: 'User, Location, Link, Vary, Last-Modified, Content-Length',
19-
credentials: true,
20-
maxAge: 1728000,
21-
origin: true
22-
})
15+
methods: [
16+
'OPTIONS', 'HEAD', 'GET',
17+
'PATCH', 'POST', 'PUT', 'DELETE'
18+
],
19+
exposedHeaders: 'User, Location, Link, Vary, Last-Modified, Content-Length',
20+
credentials: true,
21+
maxAge: 1728000,
22+
origin: true
23+
});
2324

2425
function createApp (argv) {
25-
var ldp = new LDP(argv)
26-
var app = express()
26+
var ldp = new LDP(argv);
27+
var app = express();
2728

28-
// Setting options as local variable
29-
app.locals.ldp = ldp
29+
// Setting options as local variable
30+
app.locals.ldp = ldp;
3031

31-
var sessionSettings = {
32-
secret: ldp.secret || uuid.v1(),
33-
saveUninitialized: false,
34-
resave: false
35-
}
32+
var sessionSettings = {
33+
secret: ldp.secret || uuid.v1(),
34+
saveUninitialized: false,
35+
resave: false
36+
}
3637

37-
// Cookies should set to be secure if https is on
38-
if (ldp.webid || ldp.idp) {
39-
sessionSettings.cookie = {
40-
secure: true
38+
// Cookies should set to be secure if https is on
39+
if (ldp.webid || ldp.idp) {
40+
sessionSettings.cookie = {
41+
secure: true
42+
}
4143
}
42-
}
4344

44-
// Session
45-
app.use(session(sessionSettings))
45+
// Session
46+
app.use(session(sessionSettings));
4647

47-
// Adding proxy
48-
if (ldp.proxy) {
49-
proxy(app, ldp.proxy)
50-
}
48+
// Adding proxy
49+
if (ldp.proxy) {
50+
proxy(app, ldp.proxy);
51+
}
5152

52-
// Adding Multi-user support
53-
if (ldp.idp) {
54-
var idp = IdentityProvider({
55-
store: ldp,
56-
suffixAcl: ldp.suffixAcl
57-
})
58-
app.use('/accounts', idp.middleware(corsSettings))
59-
app.use('/', corsSettings, idp.get.bind(idp))
60-
app.use(vhost('*', LdpMiddleware(corsSettings)))
61-
}
53+
// Adding Multi-user support
54+
if (ldp.idp || ldp.signup) {
55+
var idp = IdentityProvider({
56+
store: ldp,
57+
suffixAcl: ldp.suffixAcl
58+
})
59+
app.use('/accounts', idp.middleware(corsSettings));
60+
app.use('/', corsSettings, idp.get.bind(idp))
61+
}
6262

63-
// Setting up routes
64-
app.use('/', LdpMiddleware(corsSettings))
63+
if (ldp.idp) {
64+
app.use(vhost('*', LdpMiddleware(corsSettings)));
65+
}
66+
67+
if (ldp.signup) {
68+
app.get('/', function (req, res) {
69+
res.set('Content-Type', 'text/html');
70+
var signup = path.resolve(__dirname + '/../static/signup.html')
71+
res.sendFile(signup);
72+
});
73+
}
74+
app.use('/', LdpMiddleware(corsSettings));
6575

66-
return app
67-
}
76+
return app;
77+
}

lib/identity-provider.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,10 @@ IdentityProvider.prototype.create = function (options, cert, callback) {
9494
], function (err) {
9595
if (err) {
9696
err.status = 500
97-
debug('Error creating account ' + options.username + ': ' + err.message)
97+
debug('Error creating account ' + options.agent + ': ' + err.message)
9898
}
9999

100-
debug('Created files for ' + options.username)
100+
debug('Created files for ' + options.agent)
101101
callback(err)
102102
})
103103
})
@@ -405,9 +405,9 @@ IdentityProvider.prototype.post = function (req, res, next) {
405405
var self = this
406406
var options = req.body
407407

408-
if (!options || !options.username) {
409-
debug('Account creation is missing username field')
410-
var err = new Error('You must enter an account name!')
408+
if (!options) {
409+
debug('Options missing')
410+
var err = new Error('Settings to create the account have not been passed!')
411411
err.status = 406
412412
return next(err)
413413
}

0 commit comments

Comments
 (0)