can fully verify and upload a zipped website

This commit is contained in:
aj 2017-08-23 18:42:18 +00:00
parent 0c26190e2a
commit 8a4b19928a
3 changed files with 49 additions and 13 deletions

@ -1 +1 @@
Subproject commit 5f68ea19e22d05bebc6a289da0a89a714442e6d2 Subproject commit effee987beca6f0522a93533d65de1e7ed246987

View File

@ -123,18 +123,19 @@ app.controller('websiteCtrl', [
}; };
vm._isSubDomain = function (sub, domain) { vm._isSubDomain = function (sub, domain) {
return -1 === ('.' + sub).indexOf(('.' + domain)); return -1 !== ('.' + sub).indexOf(('.' + domain));
}; };
vm.createWebsite = function () { vm.createWebsite = function () {
console.log('##### Auth.oauth3');
console.log(Auth.oauth3);
var pkg = Auth.oauth3.pkg('www@daplie.com'); var pkg = Auth.oauth3.pkg('www@daplie.com');
var parts; var parts;
var sub; var sub;
var sld; var sld;
var tld; var tld;
console.log('Auth.oauth3', Auth.oauth3);
//vm.unlock('webpreneur'); //vm.unlock('webpreneur');
if (!vm.currentFiles || !vm.currentFiles.length) { if (!vm.currentFiles || !vm.currentFiles.length) {
window.alert('No files chosen.'); window.alert('No files chosen.');
@ -172,25 +173,36 @@ app.controller('websiteCtrl', [
// (because two users could both claim a single domain) // (because two users could both claim a single domain)
// We're claiming it at the top level (i.e. example.com) // We're claiming it at the top level (i.e. example.com)
// but we could also claim it at the subdomain level (needs UI update) // but we could also claim it at the subdomain level (needs UI update)
return pkg.request({ sld: sld, tld: tld, sub: undefined }).then(function (result) { var domainReq = { sld: sld, tld: tld, sub: undefined };
return pkg.request(domainReq).then(function (result) {
var sess; var sess;
var prom; var prom;
var def; var def;
console.log('[pkg www] request domain'); console.log('[pkg www] request domain');
console.log(result); console.log(result.data);
console.log('[pkg www] vm.domain.session:');
console.log(vm.domain.session);
console.log(vm.currentHost, vm.domain.domain);
console.log(vm._isSubDomain(vm.currentHost, vm.domain.domain));
// can validate automatically // can validate automatically
if (vm.domain.session && vm._isSubDomain(vm.currentHost, vm.domain.domain)) { if (vm.domain.session && vm._isSubDomain(vm.currentHost, vm.domain.domain)) {
// this should always succeed // this should always succeed
Auth.sessions.some(function (session) { Auth.sessions.some(function (session) {
console.log('#', session.token.sub + '@' + session.token.iss);
if (vm.domain.session === (session.token.sub + '@' + session.token.iss)) { if (vm.domain.session === (session.token.sub + '@' + session.token.iss)) {
console.log('=', session.token.sub + '@' + session.token.iss);
sess = session; sess = session;
return session; return session;
} }
}); });
if (sess) { if (sess) {
console.log('[pkg www] session selected', sess);
prom = Auth.select(sess).then(function (oauth3) { prom = Auth.select(sess).then(function (oauth3) {
console.log('[pkg www] instance selected', oauth3);
return oauth3.api('dns.set', { sld: sld, tld: tld, sub: ('' + result.data.prefix), type: 'TXT', ttl: 300, value: result.data.challenge }); return oauth3.api('dns.set', { sld: sld, tld: tld, sub: ('' + result.data.prefix), type: 'TXT', ttl: 300, value: result.data.challenge });
}); });
} }
@ -209,7 +221,12 @@ app.controller('websiteCtrl', [
} }
return prom.then(function () { return prom.then(function () {
vm._createWebsite(pkg); console.log('[pkg www] after pkg');
console.log(pkg);
return pkg.claim(domainReq).then(function (result) {
console.log('[pkg www] claim', result);
return vm._createWebsite(pkg);
});
}); });
}); });
@ -227,17 +244,17 @@ app.controller('websiteCtrl', [
console.log('[www] post pkg', oauth3._resourceProviderDirectives); console.log('[www] post pkg', oauth3._resourceProviderDirectives);
return pkg.list().then(function (result) { return pkg.list().then(function (result) {
var sites = result.data; var _sites = result.data;
if (Array.isArray(sites)) { if (Array.isArray(_sites)) {
sites = sites.concat(sites); sites = _sites.concat(sites);
return; return;
} }
console.error('sites is not an array'); console.error('_sites is not an array');
console.error(sites); console.error(_sites);
}, function (err) { }, function (err) {
console.error('sites had an error'); console.error('_sites had an error');
console.error(err); console.error(err);
}); });
}); });

View File

@ -12,6 +12,7 @@ OAUTH3._pkgs['www@daplie.com'] = {
method: 'POST' method: 'POST'
, url: OAUTH3.url.normalize(providerUri) , url: OAUTH3.url.normalize(providerUri)
+ '/api/www@daplie.com/acl/add/' + opts.hostname + '/api/www@daplie.com/acl/add/' + opts.hostname
+ '?' + OAUTH3.utils.query.stringify({ tld: opts.tld, sld: opts.sld/*, sub: opts.sub*/ })
, session: session , session: session
, multipart: opts.multipart // special property to be figured out by browser request code , multipart: opts.multipart // special property to be figured out by browser request code
}).then(function (result) { }).then(function (result) {
@ -48,6 +49,24 @@ OAUTH3._pkgs['www@daplie.com'] = {
}).then(function (result) { }).then(function (result) {
// result.data // result.data
return result;
});
}
, claim: function (opts) {
var providerUri = opts.audience;
var session = opts.session;
return OAUTH3.request({
method: 'POST'
, url: OAUTH3.url.normalize(providerUri)
+ '/api/www@daplie.com/acl/claim/:tld/:sld/:sub'
.replace(/(:tld)/, opts.tld)
.replace(/(:sld)/, opts.sld)
.replace(/(:sub)/, opts.sub || '')
, session: session
}).then(function (result) {
// result.data
return result; return result;
}); });
} }