30 lines
1.0 KiB
TypeScript
Executable File
30 lines
1.0 KiB
TypeScript
Executable File
import db from '@adonisjs/lucid/services/db'
|
|
import Admins from '../../app/base_modules/Admin/model/admin.js'
|
|
import Role from '../../app/base_modules/Role/model/role.js'
|
|
import { getAllPermissions } from '#services/permission_service'
|
|
|
|
export default class PermissionRoleSeeder {
|
|
public async run() {
|
|
const adminRole = await Role.updateOrCreate({ name: 'Super Admin' }, { name: 'Super Admin' })
|
|
const permissions = await getAllPermissions()
|
|
const newPermissions = permissions.map((perm) => ({
|
|
role_id: adminRole.id,
|
|
permission_slug: perm.slug,
|
|
}))
|
|
await db.from('role_permissions').where('role_id', adminRole.id).delete()
|
|
await db.table('role_permissions').insert(newPermissions)
|
|
|
|
const superAdmin = await Admins.firstOrCreate(
|
|
{ email: 'admin@admin.com' },
|
|
{
|
|
email: 'admin@admin.com',
|
|
password: '1234qqqq',
|
|
status: 'active',
|
|
firstName: 'Super',
|
|
lastName: 'Admin',
|
|
}
|
|
)
|
|
await superAdmin.related('roles').sync([adminRole.id])
|
|
}
|
|
}
|