fixing merge conflicts
This commit is contained in:
commit
9403f90a7d
|
@ -15,6 +15,11 @@ function handleFiles(ev) {
|
||||||
// 'vm' is the Controller As name.
|
// 'vm' is the Controller As name.
|
||||||
vm = $scope.vm;
|
vm = $scope.vm;
|
||||||
vm.currentFiles = ev.target.files;
|
vm.currentFiles = ev.target.files;
|
||||||
|
var file = vm.currentFiles[0];
|
||||||
|
vm.isZip = /\.zip$/.test(file.name);
|
||||||
|
vm.unzip = vm.isZip;
|
||||||
|
vm.stripZip = vm.isZip;
|
||||||
|
$scope.$digest();
|
||||||
console.log('vm.currentFiles', vm.currentFiles);
|
console.log('vm.currentFiles', vm.currentFiles);
|
||||||
}
|
}
|
||||||
window.document.body.addEventListener('change', handleFiles);
|
window.document.body.addEventListener('change', handleFiles);
|
||||||
|
@ -25,13 +30,15 @@ app.controller('websiteCtrl', [
|
||||||
|
|
||||||
var vm = this;
|
var vm = this;
|
||||||
vm.domains = [];
|
vm.domains = [];
|
||||||
|
//vm.unzipPath = '/';
|
||||||
|
vm.webPath = '/';
|
||||||
|
|
||||||
Auth.api = function (apiname, opts) {
|
Auth.api = function (apiname, opts) {
|
||||||
var els = [];
|
var els = [];
|
||||||
|
|
||||||
return $q.all(Auth.sessions.map(function (session) {
|
return $q.all(Auth.sessions.map(function (session) {
|
||||||
|
|
||||||
return Auth.select(session).then(function (oauth3) {
|
return Auth.get(session).then(function (oauth3) {
|
||||||
|
|
||||||
return oauth3.api(apiname, {}).then(function (collection) {
|
return oauth3.api(apiname, {}).then(function (collection) {
|
||||||
|
|
||||||
|
@ -80,6 +87,14 @@ app.controller('websiteCtrl', [
|
||||||
if (!vm.domain) {
|
if (!vm.domain) {
|
||||||
vm.domain = { domain: vm.newDomain };
|
vm.domain = { domain: vm.newDomain };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!vm.domain.tld) {
|
||||||
|
var parts = vm.domain.domain.split('.');
|
||||||
|
vm.domain.sld = parts.shift();
|
||||||
|
vm.domain.tld = parts.join('.');
|
||||||
|
}
|
||||||
|
|
||||||
|
vm.setRecord();
|
||||||
};
|
};
|
||||||
|
|
||||||
vm.selectDomain = function (domain) {
|
vm.selectDomain = function (domain) {
|
||||||
|
@ -103,6 +118,20 @@ app.controller('websiteCtrl', [
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
vm.setRecord = function () {
|
||||||
|
// TODO set record based on (record.host === sub + domain.domain)
|
||||||
|
var sub = vm.newRecord;
|
||||||
|
|
||||||
|
if ('@' === sub) {
|
||||||
|
sub = '';
|
||||||
|
}
|
||||||
|
vm.record = { sub: sub, host: (sub ? sub + '.' : '') + vm.domain.domain };
|
||||||
|
vm.currentHost = vm.record.host;
|
||||||
|
|
||||||
|
console.log('vm.record', vm.record);
|
||||||
|
console.log('vm.currentHost', vm.currentHost);
|
||||||
|
};
|
||||||
|
|
||||||
vm.selectRecord = function (record) {
|
vm.selectRecord = function (record) {
|
||||||
vm.record = record;
|
vm.record = record;
|
||||||
vm.newRecord = record.sub;
|
vm.newRecord = record.sub;
|
||||||
|
@ -117,24 +146,28 @@ app.controller('websiteCtrl', [
|
||||||
, sld: vm.domain.sld
|
, sld: vm.domain.sld
|
||||||
//, sub: vm.record.sub
|
//, sub: vm.record.sub
|
||||||
, multipart: { site: vm.currentFiles[0] }
|
, multipart: { site: vm.currentFiles[0] }
|
||||||
|
, unzip: vm.unzip
|
||||||
|
, strip: vm.stripZip
|
||||||
|
, path: vm.webPath
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
window.alert(JSON.stringify(result));
|
window.alert(JSON.stringify(result));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
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.');
|
||||||
|
@ -149,17 +182,15 @@ app.controller('websiteCtrl', [
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// already validated
|
|
||||||
if (vm.sites.some(function (r) {
|
|
||||||
return -1 !== ('.' + vm.currentHost).indexOf(('.' + r.domain));
|
|
||||||
})) {
|
|
||||||
vm._createWebsite(pkg);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vm.domain) {
|
if (vm.domain) {
|
||||||
|
if (!vm.domain.tld || !vm.domain.sld) {
|
||||||
parts = vm.domain.domain.split('.');
|
parts = vm.domain.domain.split('.');
|
||||||
sld = parts.shift();
|
sld = parts.shift();
|
||||||
tld = parts.join('.');
|
tld = parts.join('.');
|
||||||
|
} else {
|
||||||
|
sld = vm.domain.sld;
|
||||||
|
tld = vm.domain.tld;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
parts = vm.currentHost.split('.');
|
parts = vm.currentHost.split('.');
|
||||||
// TODO get list of tlds
|
// TODO get list of tlds
|
||||||
|
@ -168,29 +199,48 @@ app.controller('websiteCtrl', [
|
||||||
sub = parts.join('.');
|
sub = parts.join('.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// already validated
|
||||||
|
if (vm.sites.some(function (r) {
|
||||||
|
return -1 !== ('.' + vm.currentHost).indexOf(('.' + r.domain));
|
||||||
|
})) {
|
||||||
|
vm._createWebsite(pkg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// We're making a request to claim a domain
|
// We're making a request to claim a domain
|
||||||
// (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) {
|
||||||
prom = Auth.select(sess).then(function (oauth3) {
|
console.log('[pkg www] session selected', sess);
|
||||||
|
prom = Auth.get(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 +259,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);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -221,23 +276,21 @@ app.controller('websiteCtrl', [
|
||||||
return $q.all(Auth.sessions.map(function (session) {
|
return $q.all(Auth.sessions.map(function (session) {
|
||||||
|
|
||||||
console.log('[www] select');
|
console.log('[www] select');
|
||||||
return Auth.select(session).then(function (oauth3) {
|
return Auth.get(session).then(function (oauth3) {
|
||||||
console.log('[www] oauth3', oauth3._resourceProviderDirectives);
|
|
||||||
var pkg = oauth3.pkg('www@daplie.com');
|
var pkg = oauth3.pkg('www@daplie.com');
|
||||||
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);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -66,7 +66,7 @@ app.factory('Auth', [
|
||||||
});
|
});
|
||||||
return Auth.session;
|
return Auth.session;
|
||||||
}
|
}
|
||||||
, select: function (session) {
|
, get: function (session) {
|
||||||
if (!session.issuer) {
|
if (!session.issuer) {
|
||||||
throw new Error("session doesn't have an issuer");
|
throw new Error("session doesn't have an issuer");
|
||||||
}
|
}
|
||||||
|
@ -97,12 +97,16 @@ app.factory('Auth', [
|
||||||
console.log('session.subject:', session.subject);
|
console.log('session.subject:', session.subject);
|
||||||
console.log('session:', session);
|
console.log('session:', session);
|
||||||
|
|
||||||
promise.then(function (oauth3) {
|
return promise;
|
||||||
|
}
|
||||||
|
, select: function (session) {
|
||||||
|
return Auth.get(session).then(function (oauth3) {
|
||||||
|
var dapName = 'dap-' + session.subject + '|' + session.issuer;
|
||||||
|
localStorage.setItem(dapSession, dapName);
|
||||||
|
|
||||||
Auth.session = session;
|
Auth.session = session;
|
||||||
Auth.oauth3 = oauth3;
|
Auth.oauth3 = oauth3;
|
||||||
})
|
});
|
||||||
|
|
||||||
return promise;
|
|
||||||
}
|
}
|
||||||
, signOut: function () {
|
, signOut: function () {
|
||||||
var session = Auth.session;
|
var session = Auth.session;
|
||||||
|
|
|
@ -7,11 +7,12 @@ OAUTH3._pkgs['www@daplie.com'] = {
|
||||||
add: function (opts) {
|
add: function (opts) {
|
||||||
var providerUri = opts.audience;
|
var providerUri = opts.audience;
|
||||||
var session = opts.session;
|
var session = opts.session;
|
||||||
debugger;
|
|
||||||
return OAUTH3.request({
|
return OAUTH3.request({
|
||||||
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*/, unzip: opts.unzip, strip: opts.strip, path: opts.path })
|
||||||
, 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;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,15 @@
|
||||||
<br>
|
<br>
|
||||||
-->
|
-->
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<label>Select .zip upload</label> <input type="file" class="js-file-upload this-has-a-special-non-angular-event-handler" />
|
<div><label>Select .zip upload</label> <input type="file" class="js-file-upload this-has-a-special-non-angular-event-handler" /></div>
|
||||||
|
|
||||||
|
<div ng-if="vm.isZip" ><label><input type="checkbox" ng-model="vm.unzip" /> Unpack .zip</label></div>
|
||||||
|
|
||||||
|
<div ng-if="vm.unzip" ><label><input type="checkbox" ng-model="vm.stripZip" /> Strip zip directory root</label></div>
|
||||||
|
|
||||||
|
<!-- div ng-if="vm.isZip" ><label>Unzip directory</label> <input type="text" ng-model="vm.unzipPath" /></div -->
|
||||||
|
|
||||||
|
<div><label>Web path</label> <input type="text" ng-model="vm.webPath" /></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue