Add default user to allow for default groups and IAM
This commit is contained in:
parent
0844da594e
commit
3a91417db3
@ -91,6 +91,7 @@ class AuthController extends Controller {
|
||||
if ( !(await User.findOne()) ) user.promote('root')
|
||||
|
||||
await user.save()
|
||||
await user.grant_defaults()
|
||||
|
||||
// Log in the user automatically
|
||||
await this.auth.get_provider().session(req, user)
|
||||
@ -321,6 +322,7 @@ class AuthController extends Controller {
|
||||
|
||||
await user.reset_password(req.body.password, 'create')
|
||||
await user.save()
|
||||
await user.grant_defaults()
|
||||
return res.api(await user.to_api())
|
||||
}
|
||||
|
||||
|
@ -40,9 +40,24 @@ class User extends AuthUser {
|
||||
notify_config: NotifyConfig,
|
||||
uid_number: Number,
|
||||
login_shell: String,
|
||||
|
||||
is_default_user_for_coreid: { type: Boolean, default: false },
|
||||
}}
|
||||
}
|
||||
|
||||
async grant_defaults() {
|
||||
const default_user = await this.constructor.findOne({is_default_user_for_coreid: true, active: true})
|
||||
this.login_shell = default_user.login_shell
|
||||
this.roles = default_user.roles
|
||||
this.permissions = default_user.permissions
|
||||
|
||||
const groups = await default_user.groups()
|
||||
for ( const group of groups ) {
|
||||
group.user_ids.push(this.id)
|
||||
await group.save()
|
||||
}
|
||||
}
|
||||
|
||||
async get_uid_number() {
|
||||
if ( !this.uid_number ) {
|
||||
const Setting = this.models.get('Setting')
|
||||
|
@ -13,6 +13,22 @@ class SettingsUnit extends Unit {
|
||||
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 ) {
|
||||
|
Loading…
Reference in New Issue
Block a user