51 lines
1.7 KiB
JavaScript
Raw Normal View History

'use strict';
const { merge } = require('lodash/fp');
const adminActions = require('../admin-actions');
const adminConditions = require('../admin-conditions');
const defaultAdminAuthSettings = {
providers: {
autoRegister: false,
defaultRole: null,
},
};
const registerPermissionActions = () => {
const { actionProvider } = strapi.admin.services.permission;
actionProvider.register(adminActions.actions);
};
const registerAdminConditions = () => {
const { conditionProvider } = strapi.admin.services.permission;
conditionProvider.registerMany(adminConditions.conditions);
};
const syncAuthSettings = async () => {
const adminStore = await strapi.store({ type: 'core', environment: '', name: 'admin' });
const adminAuthSettings = await adminStore.get({ key: 'auth' });
const newAuthSettings = merge(defaultAdminAuthSettings, adminAuthSettings);
await adminStore.set({ key: 'auth', value: newAuthSettings });
};
module.exports = async () => {
registerAdminConditions();
registerPermissionActions();
await strapi.admin.services.permission.cleanPermissionInDatabase();
await strapi.admin.services.permission.ensureBoundPermissionsInDatabase();
await strapi.admin.services.user.migrateUsers();
await strapi.admin.services.role.createRolesIfNoneExist();
await strapi.admin.services.role.resetSuperAdminPermissions();
await strapi.admin.services.role.displayWarningIfNoSuperAdmin();
await strapi.admin.services.user.displayWarningIfUsersDontHaveRole();
await syncAuthSettings();
2020-12-29 17:44:14 +01:00
strapi.admin.destroy = () => {
strapi.admin.services.permission.conditionProvider.clear();
strapi.admin.services.permission.actionProvider.clear();
};
};