53 lines
1.7 KiB
JavaScript
53 lines
1.7 KiB
JavaScript
const { Unit } = require('libflitter')
|
|
|
|
class SettingsUnit extends Unit {
|
|
static get name() {
|
|
return 'settings'
|
|
}
|
|
|
|
static get services() {
|
|
return [...super.services, 'configs', 'models', 'output']
|
|
}
|
|
|
|
async go(app) {
|
|
Error.stackTraceLimit = 50
|
|
app.express.set('trust proxy', true)
|
|
|
|
const User = this.models.get('auth:User')
|
|
const user = await User.findOne({is_default_user_for_coreid: true})
|
|
if ( !user ) {
|
|
const user = new User({
|
|
uid: '__coreid_default_user__',
|
|
provider: 'flitter',
|
|
block_login: true,
|
|
first_name: 'Default_User',
|
|
last_name: 'Default_User',
|
|
ldap_visible: false,
|
|
is_default_user_for_coreid: true,
|
|
})
|
|
|
|
await user.save()
|
|
}
|
|
|
|
const Setting = this.models.get('Setting')
|
|
const default_settings = this.configs.get('setting.settings')
|
|
for ( const key in default_settings ) {
|
|
if ( !default_settings.hasOwnProperty(key) ) continue
|
|
const default_value = default_settings[key]
|
|
this.output.debug(`Guarantee setting key "${key}" with default value "${default_value}".`)
|
|
await Setting.guarantee(key, default_value)
|
|
}
|
|
|
|
const Permission = this.models.get('iam:Permission')
|
|
const default_permissions = this.configs.get('auth.iam.default_permissions')
|
|
for ( const perm of default_permissions ) {
|
|
const existing = await Permission.findOne(perm)
|
|
if ( !existing ) {
|
|
await (new Permission(perm)).save()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = exports = SettingsUnit
|