forked from cory/tildefriends
format/prettier
This commit is contained in:
@ -145,7 +145,11 @@ function socket(request, response, client) {
|
||||
action: 'session',
|
||||
credentials: credentials,
|
||||
identities: await ssb.getIdentities(credentials?.session?.name),
|
||||
identity: await core.getActiveIdentity(credentials?.session?.name, packageOwner, packageName),
|
||||
identity: await core.getActiveIdentity(
|
||||
credentials?.session?.name,
|
||||
packageOwner,
|
||||
packageName
|
||||
),
|
||||
parentApp: parentApp,
|
||||
id: blobId,
|
||||
}),
|
||||
|
@ -81,16 +81,16 @@
|
||||
<h1 ?hidden=${this.name === undefined}>Welcome, ${this.name}.</h1>
|
||||
|
||||
<div style="display: flex; flex-direction: row; width: 100%">
|
||||
<input type="radio" name="tab" id="login" value="Login" ?checked=${this.tab == 'login'} @change=${() => self.tab = 'login'}></input>
|
||||
<input type="radio" name="tab" id="login" value="Login" ?checked=${this.tab == 'login'} @change=${() => (self.tab = 'login')}></input>
|
||||
<label for="login" id="login_label">Login</label>
|
||||
|
||||
<input type="radio" name="tab" id="register" value="Register" ?checked=${this.tab == 'register'} @change=${() => self.tab = 'register'}></input>
|
||||
<input type="radio" name="tab" id="register" value="Register" ?checked=${this.tab == 'register'} @change=${() => (self.tab = 'register')}></input>
|
||||
<label for="register" id="register_label">Register</label>
|
||||
|
||||
<input type="radio" name="tab" id="guest" value="Guest" ?checked=${this.tab == 'guest'} @change=${() => self.tab = 'guest'}></input>
|
||||
<input type="radio" name="tab" id="guest" value="Guest" ?checked=${this.tab == 'guest'} @change=${() => (self.tab = 'guest')}></input>
|
||||
<label for="guest" id="guest_label">Guest</label>
|
||||
|
||||
<input type="radio" name="tab" id="change" value="Change Password" ?checked=${this.tab == 'change'} @change=${() => self.tab = 'change'}></input>
|
||||
<input type="radio" name="tab" id="change" value="Change Password" ?checked=${this.tab == 'change'} @change=${() => (self.tab = 'change')}></input>
|
||||
<label for="change" id="change_label">Change Password</label>
|
||||
</div>
|
||||
|
||||
|
@ -121,11 +121,17 @@ class TfNavigationElement extends LitElement {
|
||||
*/
|
||||
render_login() {
|
||||
if (this?.credentials?.session?.name) {
|
||||
return html`<a class="w3-bar-item w3-right" id="login" href="/login/logout?return=${url() + hash()}"
|
||||
return html`<a
|
||||
class="w3-bar-item w3-right"
|
||||
id="login"
|
||||
href="/login/logout?return=${url() + hash()}"
|
||||
>logout ${this.credentials.session.name}</a
|
||||
>`;
|
||||
} else {
|
||||
return html`<a class="w3-bar-item w3-right" id="login" href="/login?return=${url() + hash()}"
|
||||
return html`<a
|
||||
class="w3-bar-item w3-right"
|
||||
id="login"
|
||||
href="/login?return=${url() + hash()}"
|
||||
>login</a
|
||||
>`;
|
||||
}
|
||||
@ -146,8 +152,11 @@ class TfNavigationElement extends LitElement {
|
||||
<select
|
||||
@change=${this.set_active_identity}
|
||||
class="w3-button w3-cyan w3-bar-item w3-right"
|
||||
style="max-width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap">
|
||||
${this.identities.map(x => html`<option ?selected=${x === this.identity}>${x}</option>`)}
|
||||
style="max-width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap"
|
||||
>
|
||||
${this.identities.map(
|
||||
(x) => html`<option ?selected=${x === this.identity}>${x}</option>`
|
||||
)}
|
||||
</select>
|
||||
`;
|
||||
} else {
|
||||
@ -155,7 +164,8 @@ class TfNavigationElement extends LitElement {
|
||||
<link type="text/css" rel="stylesheet" href="/static/w3.css" />
|
||||
<button
|
||||
@click=${this.create_identity}
|
||||
class="w3-button w3-blue w3-right">
|
||||
class="w3-button w3-blue w3-right"
|
||||
>
|
||||
Create an Identity
|
||||
</button>
|
||||
`;
|
||||
@ -226,9 +236,7 @@ class TfNavigationElement extends LitElement {
|
||||
display: inline-block;
|
||||
}
|
||||
</style>
|
||||
<div
|
||||
class="w3-black w3-bar"
|
||||
>
|
||||
<div class="w3-black w3-bar">
|
||||
<span
|
||||
class="w3-bar-item"
|
||||
style="cursor: pointer"
|
||||
@ -237,7 +245,8 @@ class TfNavigationElement extends LitElement {
|
||||
>
|
||||
<span
|
||||
class="w3-bar-item"
|
||||
style=${'white-space: nowrap' + (this.show_version ? '' : '; display: none')}
|
||||
style=${'white-space: nowrap' +
|
||||
(this.show_version ? '' : '; display: none')}
|
||||
title=${this.version?.name +
|
||||
' ' +
|
||||
Object.entries(this.version || {})
|
||||
@ -280,20 +289,21 @@ class TfNavigationElement extends LitElement {
|
||||
@click=${() => (self.show_permissions = !self.show_permissions)}
|
||||
>🎛️</a
|
||||
>
|
||||
${status.message ? html`
|
||||
<span
|
||||
class="w3-bar-item"
|
||||
style="vertical-align: top; white-space: pre; color: ${this
|
||||
.status.color ?? kErrorColor}"
|
||||
>${this.status.message}</span
|
||||
>
|
||||
` : undefined}
|
||||
${status.message
|
||||
? html`
|
||||
<span
|
||||
class="w3-bar-item"
|
||||
style="vertical-align: top; white-space: pre; color: ${this
|
||||
.status.color ?? kErrorColor}"
|
||||
>${this.status.message}</span
|
||||
>
|
||||
`
|
||||
: undefined}
|
||||
${this.render_permissions()}
|
||||
${Object.keys(this.spark_lines)
|
||||
.sort()
|
||||
.map((x) => this.spark_lines[x])}
|
||||
${this.render_login()}
|
||||
${this.render_identity()}
|
||||
${this.render_login()} ${this.render_identity()}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
55
core/core.js
55
core/core.js
@ -272,7 +272,13 @@ function broadcast(message) {
|
||||
* @param {*} argv
|
||||
* @returns
|
||||
*/
|
||||
function broadcastAppEventToUser(user, packageOwner, packageName, eventName, argv) {
|
||||
function broadcastAppEventToUser(
|
||||
user,
|
||||
packageOwner,
|
||||
packageName,
|
||||
eventName,
|
||||
argv
|
||||
) {
|
||||
let promises = [];
|
||||
for (let process of Object.values(gProcesses)) {
|
||||
if (
|
||||
@ -533,21 +539,40 @@ async function getProcessBlob(blobId, key, options) {
|
||||
url: options?.url,
|
||||
},
|
||||
};
|
||||
process.sendIdentities = async function() {
|
||||
process.sendIdentities = async function () {
|
||||
process.app.send({
|
||||
action: 'identities',
|
||||
identities: await ssb.getIdentities(process?.credentials?.session?.name),
|
||||
identity: await getActiveIdentity(process?.credentials?.session?.name, options.packageOwner, options.packageName),
|
||||
identities: await ssb.getIdentities(
|
||||
process?.credentials?.session?.name
|
||||
),
|
||||
identity: await getActiveIdentity(
|
||||
process?.credentials?.session?.name,
|
||||
options.packageOwner,
|
||||
options.packageName
|
||||
),
|
||||
});
|
||||
};
|
||||
process.setActiveIdentity = async function(identity) {
|
||||
if (process?.credentials?.session?.name && options.packageOwner && options.packageName) {
|
||||
await new Database(process?.credentials?.session?.name).set(`id:${options.packageOwner}:${options.packageName}`, identity);
|
||||
process.setActiveIdentity = async function (identity) {
|
||||
if (
|
||||
process?.credentials?.session?.name &&
|
||||
options.packageOwner &&
|
||||
options.packageName
|
||||
) {
|
||||
await new Database(process?.credentials?.session?.name).set(
|
||||
`id:${options.packageOwner}:${options.packageName}`,
|
||||
identity
|
||||
);
|
||||
}
|
||||
process.sendIdentities();
|
||||
broadcastAppEventToUser(process?.credentials?.session?.name, options.packageOwner, options.packageName, 'setActiveIdentity', [identity]);
|
||||
broadcastAppEventToUser(
|
||||
process?.credentials?.session?.name,
|
||||
options.packageOwner,
|
||||
options.packageName,
|
||||
'setActiveIdentity',
|
||||
[identity]
|
||||
);
|
||||
};
|
||||
process.createIdentity = async function() {
|
||||
process.createIdentity = async function () {
|
||||
if (
|
||||
process.credentials &&
|
||||
process.credentials.session &&
|
||||
@ -557,7 +582,7 @@ async function getProcessBlob(blobId, key, options) {
|
||||
await process.sendIdentities();
|
||||
return id;
|
||||
}
|
||||
}
|
||||
};
|
||||
if (process.credentials?.permissions?.administration) {
|
||||
imports.core.globalSettingsDescriptions = function () {
|
||||
let settings = Object.assign({}, k_global_settings);
|
||||
@ -655,8 +680,13 @@ async function getProcessBlob(blobId, key, options) {
|
||||
});
|
||||
}
|
||||
};
|
||||
imports.ssb.setActiveIdentity = id => process.setActiveIdentity(id);
|
||||
imports.ssb.getActiveIdentity = () => getActiveIdentity(process.credentials?.session?.name, options.packageOwner, options.packageName);
|
||||
imports.ssb.setActiveIdentity = (id) => process.setActiveIdentity(id);
|
||||
imports.ssb.getActiveIdentity = () =>
|
||||
getActiveIdentity(
|
||||
process.credentials?.session?.name,
|
||||
options.packageOwner,
|
||||
options.packageName
|
||||
);
|
||||
imports.ssb.getOwnerIdentities = function () {
|
||||
if (options.packageOwner) {
|
||||
return ssb.getIdentities(options.packageOwner);
|
||||
@ -1502,7 +1532,6 @@ function storePermission(user, packageOwner, packageName, permission, allow) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
async function getActiveIdentity(user, packageOwner, packageName) {
|
||||
if (user && packageOwner && packageName) {
|
||||
let id = await new Database(user).get(`id:${packageOwner}:${packageName}`);
|
||||
|
Reference in New Issue
Block a user