mirror of
https://github.com/directus/directus.git
synced 2026-04-03 03:00:39 -04:00
Unify & translate initial role/user detail in init & bootstrap command (#10493)
* Unify initial role/user detail in init & bootstrap * translate role descriptions * translate data from system collections
This commit is contained in:
@@ -8,6 +8,7 @@ import { getSchema } from '../../../utils/get-schema';
|
||||
import { RolesService, UsersService, SettingsService } from '../../../services';
|
||||
import getDatabase, { isInstalled, validateDatabaseConnection, hasDatabaseConnection } from '../../../database';
|
||||
import { SchemaOverview } from '../../../types';
|
||||
import { defaultAdminRole, defaultAdminUser } from '../../utils/defaults';
|
||||
|
||||
export default async function bootstrap({ skipAdminInit }: { skipAdminInit?: boolean }): Promise<void> {
|
||||
logger.info('Initializing bootstrap...');
|
||||
@@ -65,7 +66,7 @@ async function waitForDatabase(database: Knex) {
|
||||
async function createDefaultAdmin(schema: SchemaOverview) {
|
||||
logger.info('Setting up first admin role...');
|
||||
const rolesService = new RolesService({ schema });
|
||||
const role = await rolesService.createOne({ name: 'Admin', admin_access: true });
|
||||
const role = await rolesService.createOne(defaultAdminRole);
|
||||
|
||||
logger.info('Adding first admin user...');
|
||||
const usersService = new UsersService({ schema });
|
||||
@@ -84,5 +85,5 @@ async function createDefaultAdmin(schema: SchemaOverview) {
|
||||
logger.info(`No admin password provided. Defaulting to "${adminPassword}"`);
|
||||
}
|
||||
|
||||
await usersService.createOne({ email: adminEmail, password: adminPassword, role });
|
||||
await usersService.createOne({ email: adminEmail, password: adminPassword, role, ...defaultAdminUser });
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import createEnv from '../../utils/create-env';
|
||||
import { drivers, getDriverForClient } from '../../utils/drivers';
|
||||
import { databaseQuestions } from './questions';
|
||||
import { generateHash } from '../../../utils/generate-hash';
|
||||
import { defaultAdminRole, defaultAdminUser } from '../../utils/defaults';
|
||||
|
||||
export default async function init(): Promise<void> {
|
||||
const rootPath = process.cwd();
|
||||
@@ -94,20 +95,15 @@ export default async function init(): Promise<void> {
|
||||
|
||||
await db('directus_roles').insert({
|
||||
id: roleID,
|
||||
name: 'Administrator',
|
||||
icon: 'verified',
|
||||
admin_access: true,
|
||||
description: 'Initial administrative role with unrestricted App/API access',
|
||||
...defaultAdminRole,
|
||||
});
|
||||
|
||||
await db('directus_users').insert({
|
||||
id: userID,
|
||||
status: 'active',
|
||||
email: firstUser.email,
|
||||
password: firstUser.password,
|
||||
first_name: 'Admin',
|
||||
last_name: 'User',
|
||||
role: roleID,
|
||||
...defaultAdminUser,
|
||||
});
|
||||
|
||||
await db.destroy();
|
||||
|
||||
12
api/src/cli/utils/defaults.ts
Normal file
12
api/src/cli/utils/defaults.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export const defaultAdminRole = {
|
||||
name: 'Administrator',
|
||||
icon: 'verified',
|
||||
admin_access: true,
|
||||
description: '$t:admin_description',
|
||||
};
|
||||
|
||||
export const defaultAdminUser = {
|
||||
status: 'active',
|
||||
first_name: 'Admin',
|
||||
last_name: 'User',
|
||||
};
|
||||
Reference in New Issue
Block a user