getId()); $config = $c->getInfo() ?: []; $instance = [ 'name' => $plugin->getName(), 'plugin_id' => $plugin->getId(), 'config' => Format::json_encode($config)]; $i = PluginInstance::create($instance); $i->setStatus($plugin->isActive()); $i->updated = SqlFunction::NOW(); $i->save(); // Delete old config entries $c->destroy(); } // Update Plugin ids used to the new format. PluginManager::clearCache(); $ost->plugins->bootstrap(); // Staff auth backends foreach (StaffAuthenticationBackend::allRegistered() as $p) { if ($p::$id && $p->getBkId() == $p::$id) continue; Staff::objects() ->filter(['backend' => $p::$id]) ->update(['backend' => $p->getBkId()]); } // User auth backends foreach (UserAuthenticationBackend::allRegistered() as $p) { if ($p::$id && $p->getBkId() == $p::$id) continue; UserAccount::objects() ->filter(['backend' => $p::$id]) ->update(['backend' => $p->getBkId()]); } // Password Policies $config = $ost->getConfig(); foreach (PasswordPolicy::allActivePolicies() as $p) { if ($config->get('agent_passwd_policy') == $p::$id) $config->set('agent_passwd_policy', $p->getBkId()); if ($config->get('client_passwd_policy') == $p::$id) $config->set('client_passwd_policy', $p->getBkId()); } } } return 'PluginMigration';