69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
'use strict'
|
|
const knex = require('@/db/knex')
|
|
|
|
const Roles = () => knex('user_roles')
|
|
const Scopes = () => knex('scopes')
|
|
const Info = () => knex('server_config')
|
|
|
|
module.exports = {
|
|
/**
|
|
* @returns {Promise<import('@/modules/core/helpers/types').ServerInfo>}
|
|
*/
|
|
async getServerInfo() {
|
|
const serverInfo = await Info().select('*').first()
|
|
serverInfo.version = process.env.SPECKLE_SERVER_VERSION || 'dev'
|
|
serverInfo.canonicalUrl = process.env.CANONICAL_URL || '127.0.0.1'
|
|
return serverInfo
|
|
},
|
|
|
|
async getAllScopes() {
|
|
return await Scopes().select('*')
|
|
},
|
|
|
|
async getPublicScopes() {
|
|
return await Scopes().select('*').where({ public: true })
|
|
},
|
|
|
|
async getAllRoles() {
|
|
return await Roles().select('*')
|
|
},
|
|
|
|
async getPublicRoles() {
|
|
return await Roles().select('*').where({ public: true })
|
|
},
|
|
|
|
async updateServerInfo({
|
|
name,
|
|
company,
|
|
description,
|
|
adminContact,
|
|
termsOfService,
|
|
inviteOnly,
|
|
guestModeEnabled
|
|
}) {
|
|
const serverInfo = await Info().select('*').first()
|
|
if (!serverInfo)
|
|
return await Info().insert({
|
|
name,
|
|
company,
|
|
description,
|
|
adminContact,
|
|
termsOfService,
|
|
inviteOnly,
|
|
guestModeEnabled,
|
|
completed: true
|
|
})
|
|
else
|
|
return await Info().where({ id: 0 }).update({
|
|
name,
|
|
company,
|
|
description,
|
|
adminContact,
|
|
termsOfService,
|
|
inviteOnly,
|
|
guestModeEnabled,
|
|
completed: true
|
|
})
|
|
}
|
|
}
|