Skip to content
This repository was archived by the owner on Jun 3, 2020. It is now read-only.

Commit 53e039a

Browse files
committed
Add tools for sidebar fetching of site sessions
1 parent 1947298 commit 53e039a

2 files changed

Lines changed: 22 additions & 8 deletions

File tree

users/site-sessions.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,16 @@ exports.destroy = async function (userId, url) {
7777
// =
7878

7979
/**
80-
* @param {number} userId
81-
* @param {string} url
80+
* @param {number} userId
81+
* @param {string} url
8282
* @returns {string}
8383
*/
8484
function sesskey (userId, url) {
8585
return `${userId}|${url}`
8686
}
8787

8888
/**
89-
* @param {Object} record
89+
* @param {Object} record
9090
* @returns {UserSiteSession}
9191
*/
9292
function massageRecord (record) {

web-apis/bg/navigator-session.js

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const sessionPerms = require('../../lib/session-perms')
1111
/**
1212
* @typedef {import('../../users/index').User} User
1313
* @typedef {import('../../users/site-sessions').UserSiteSession} UserSiteSession
14-
*
14+
*
1515
* @typedef {Object} NavigatorSessionPublicAPIRecord
1616
* @prop {Object} profile
1717
* @prop {string} profile.url
@@ -78,20 +78,34 @@ module.exports = {
7878
},
7979

8080
/**
81+
* @param {string} siteUrl only usable from beaker:// origins
8182
* @returns {Promise<NavigatorSessionPublicAPIRecord>}
8283
*/
83-
async get () {
84+
async get (siteUrl = undefined) {
8485
var user = await getUser(this.sender)
85-
var siteUrl = await sessionPerms.toDatOrigin(this.sender.getURL())
86+
if (this.sender.getURL().startsWith('beaker:') && siteUrl) {
87+
// trusted app, use given url
88+
siteUrl = await sessionPerms.toDatOrigin(siteUrl)
89+
} else {
90+
// use sender url
91+
siteUrl = await sessionPerms.toDatOrigin(this.sender.getURL())
92+
}
8693
return massageSessionRecord(user, await userSiteSessions.get(user.id, siteUrl))
8794
},
8895

8996
/**
97+
* @param {string} siteUrl only usable from beaker:// origins
9098
* @returns {Promise<void>}
9199
*/
92-
async destroy () {
100+
async destroy (siteUrl = undefined) {
93101
var user = await getUser(this.sender)
94-
var siteUrl = await sessionPerms.toDatOrigin(this.sender.getURL())
102+
if (this.sender.getURL().startsWith('beaker:') && siteUrl) {
103+
// trusted app, use given url
104+
siteUrl = await sessionPerms.toDatOrigin(siteUrl)
105+
} else {
106+
// use sender url
107+
siteUrl = await sessionPerms.toDatOrigin(this.sender.getURL())
108+
}
95109
await userSiteSessions.destroy(user.id, siteUrl)
96110
}
97111
}

0 commit comments

Comments
 (0)