From fab2c17b430475c44fbeb1f1059b301008e6796c Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Sun, 31 Jul 2022 20:32:48 +0000 Subject: [PATCH] Remove the administrator requirement and allow creating new SSB accounts. git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3945 ed5197a5-7fde-0310-b194-c3ffbd925b24 --- apps/cory/ssb.json | 2 +- apps/cory/ssb/app.js | 15 ++++++++------- apps/cory/ssb/index.html | 8 +++++++- apps/cory/ssb/tf.js | 11 ++++++++++- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/apps/cory/ssb.json b/apps/cory/ssb.json index 6d0cca0f..1ca1ce6f 100644 --- a/apps/cory/ssb.json +++ b/apps/cory/ssb.json @@ -1 +1 @@ -{"type":"tildefriends-app","files":{"app.js":"&acYxT0G3CMw7yeOLrSZEyUMddadjz3Tj3s922ufQBcQ=.sha256","index.html":"&zWXxIB5f290SW1LGSasi41hNMJUwWzFTnSGeO/lh5zI=.sha256","vue-material.js":"&K5cdLqXYCENPak/TCINHQhyJhpS4G9DlZHGwoh/LF2g=.sha256","tf-user.js":"&smJOHGgIsKwQXeEJD3VbHX4A+vhr1Se54WlSHUP/Km8=.sha256","tf-message.js":"&7M+IUC+xHyc306xRrJcx3TnYpONYLlgCsF80m2M2ws4=.sha256","tf.js":"&FD0n9f4JMrvTFTxNOpMKDPv0e2Cex49G+oWdZOUcd/I=.sha256","commonmark.min.js":"&EP0OeR9zyLwZannz+0ga4s9AGES2RLvvIIQYHqqV6+k=.sha256","vue.js":"&g1wvA+yHl1sVC+eufTsg9If7ZeVyMTBU+h0tks7ZNzE=.sha256","vue-material-theme-default-dark.css":"&RP2nr+2CR18BpHHw5ST9a5GJUCOG9n0G2kuGkcQioWE=.sha256","vue-material.min.css":"&kGbUM2QgFSyHZRzqQb0b+0S3EVIlZ0AXpdiAVjIhou8=.sha256","roboto.css":"&jJv43Om673mQO5JK0jj7714s5E+5Yrf82H6LcDx7wUs=.sha256","material-icons.css":"&a28PdcVvgq/DxyIvJAx/e+ZOEtOuHnr3kjLWKyzH11M=.sha256","tf-shared.js":"&MPINm55jkpz2rrNbwsYl09PKGvbgL3nwgBy6CMQkSnw=.sha256","style.css":"&qegBNCrVUihxffRUxGFuG/6u+0Y6d18zHtfNHBZtZ04=.sha256"}} \ No newline at end of file +{"type":"tildefriends-app","files":{"app.js":"&WHHdzbI7ug6XNIzyU52SndurkPDXfxkXdTAIglF76QU=.sha256","index.html":"&VkJWaTAZIuKQJQ95D9f52Sp3VH6Y9y58e2db2nSEF+I=.sha256","vue-material.js":"&K5cdLqXYCENPak/TCINHQhyJhpS4G9DlZHGwoh/LF2g=.sha256","tf-user.js":"&smJOHGgIsKwQXeEJD3VbHX4A+vhr1Se54WlSHUP/Km8=.sha256","tf-message.js":"&7M+IUC+xHyc306xRrJcx3TnYpONYLlgCsF80m2M2ws4=.sha256","tf.js":"&taJiSGBI+GveYXLKQRggNnmz2VhHsGwx+e4Zp56Glfg=.sha256","commonmark.min.js":"&EP0OeR9zyLwZannz+0ga4s9AGES2RLvvIIQYHqqV6+k=.sha256","vue.js":"&g1wvA+yHl1sVC+eufTsg9If7ZeVyMTBU+h0tks7ZNzE=.sha256","vue-material-theme-default-dark.css":"&RP2nr+2CR18BpHHw5ST9a5GJUCOG9n0G2kuGkcQioWE=.sha256","vue-material.min.css":"&kGbUM2QgFSyHZRzqQb0b+0S3EVIlZ0AXpdiAVjIhou8=.sha256","roboto.css":"&jJv43Om673mQO5JK0jj7714s5E+5Yrf82H6LcDx7wUs=.sha256","material-icons.css":"&a28PdcVvgq/DxyIvJAx/e+ZOEtOuHnr3kjLWKyzH11M=.sha256","tf-shared.js":"&MPINm55jkpz2rrNbwsYl09PKGvbgL3nwgBy6CMQkSnw=.sha256","style.css":"&qegBNCrVUihxffRUxGFuG/6u+0Y6d18zHtfNHBZtZ04=.sha256"}} \ No newline at end of file diff --git a/apps/cory/ssb/app.js b/apps/cory/ssb/app.js index 07111028..e6347798 100644 --- a/apps/cory/ssb/app.js +++ b/apps/cory/ssb/app.js @@ -448,6 +448,7 @@ async function refresh_internal(whoami, selected) { return; } if (whoami !== g_whoami || selected !== g_selected) { + await app.localStorageSet('whoami', whoami); g_whoami = whoami; g_selected = selected; } else { @@ -475,8 +476,7 @@ async function refresh_internal(whoami, selected) { let hash = selected && selected.length == 1 ? selected[0] : null; if (hash !== g_hash) { g_hash = hash; - print(g_hash, '=>', hash); - //await tfrpc.rpc.set_hash(hash); + await tfrpc.rpc.set_hash(hash); } await Promise.all([ tfrpc.rpc.set('whoami', whoami), @@ -571,6 +571,10 @@ tfrpc.register(async function refresh(whoami, selected) { return refresh_internal(whoami, selected); }); +tfrpc.register(async function createIdentity() { + return ssb.createIdentity(); +}); + async function addAppSources(message) { if (message.mentions) { for (let mention of message.mentions) { @@ -607,13 +611,10 @@ core.register('message', async function(m) { }); async function main() { - if (core.user && - core.user.credentials && - core.user.credentials.permissions && - core.user.credentials.permissions.administration) { + if (core.user?.credentials?.permissions?.authenticated) { await app.setDocument(utf8Decode(await getFile("index.html"))); } else { - await app.setDocument('
Only the administrator can use this app at this time. Login at the top right.
'); + await app.setDocument('
You must be signed in to use this app at this time. Login at the top right.
'); } } diff --git a/apps/cory/ssb/index.html b/apps/cory/ssb/index.html index 167c3561..4a2077dd 100644 --- a/apps/cory/ssb/index.html +++ b/apps/cory/ssb/index.html @@ -43,13 +43,19 @@ -
Welcome, +
Welcome,
+
{{identity}}
+
+ + Create Identity + +
diff --git a/apps/cory/ssb/tf.js b/apps/cory/ssb/tf.js index c74e682f..40f7659f 100644 --- a/apps/cory/ssb/tf.js +++ b/apps/cory/ssb/tf.js @@ -327,7 +327,16 @@ window.addEventListener('load', function() { } else { return bytes; } - } + }, + create_identity() { + if (confirm("Are you sure you would like to create a new identity?")) { + tfrpc.rpc.createIdentity().then(function(id) { + alert(`Identity '${id}' created.`); + }).catch(function(e) { + alert('Error creating a new identity: ' + e); + }); + } + }, } }); tfrpc.rpc.ready();