51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
'use strict'
|
|
const appRoot = require( 'app-root-path' )
|
|
const knex = require( `${appRoot}/db/knex` )
|
|
|
|
const Roles = ( ) => knex( 'user_roles' )
|
|
const Scopes = ( ) => knex( 'scopes' )
|
|
const Info = ( ) => knex( 'server_config' )
|
|
|
|
module.exports = {
|
|
|
|
async getServerInfo( ) {
|
|
let serverInfo = await Info( ).select( '*' ).first( )
|
|
serverInfo.version = process.env.SPECKLE_SERVER_VERSION || 'dev'
|
|
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 } ) {
|
|
|
|
let serverInfo = await Info( ).select( '*' ).first( )
|
|
if ( !serverInfo )
|
|
return await Info( ).insert( { name, company, description, adminContact, termsOfService, inviteOnly, completed: true } )
|
|
else
|
|
return await Info( ).where( { id: 0 } ).update( { name, company, description, adminContact, termsOfService, inviteOnly, completed: true } )
|
|
|
|
}
|
|
}
|