Compare commits

...

2 commits

Author SHA1 Message Date
Girish Ramakrishnan 82be3d5f13 Fix test 2024-01-16 14:23:23 +01:00
Girish Ramakrishnan 3c7afbe0ca always install oidc plugin 2024-01-16 14:22:02 +01:00
2 changed files with 22 additions and 30 deletions

View file

@ -8,27 +8,20 @@ mkdir -p /app/data/storage /run/peertube/cache /run/peertube/npm /tmp/peertube
cd /app/code/server cd /app/code/server
migrate_ldap_to_oidc() { migrate_ldap_to_oidc() {
if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then USERS_TO_MIGRATE=$(PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -AXqtc "SELECT count(*) FROM \"user\" u WHERE \"pluginAuth\"='peertube-plugin-auth-ldap'")
OIDC_PLUIGIN_INSTALLED=$(PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -AXqtc "SELECT count(*) FROM \"plugin\" WHERE name='auth-openid-connect'") echo "==> Migrating users to OIDC";
if [ ${OIDC_PLUIGIN_INSTALLED} -eq 0 ]; then echo " Users to migrate: ${USERS_TO_MIGRATE}"
install_oidc if [ ${USERS_TO_MIGRATE} -gt 0 ]; then
fi PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -c "UPDATE \"user\" SET \"pluginAuth\"='peertube-plugin-auth-openid-connect' WHERE \"pluginAuth\"='peertube-plugin-auth-ldap'"
fi
USERS_TO_MIGRATE=$(PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -AXqtc "SELECT count(*) FROM \"user\" u WHERE \"pluginAuth\"='peertube-plugin-auth-ldap'") LDAP_PLUGIN_INSTALLED=$(PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -AXqtc "SELECT count(*) FROM \"plugin\" WHERE name='auth-ldap'")
echo "==> Migrating users to OIDC"; if [ ${LDAP_PLUGIN_INSTALLED} -gt 0 ]; then
echo " Users to migrate: ${USERS_TO_MIGRATE}" echo "==> Uninstalling LDAP plugin"
if [ ${USERS_TO_MIGRATE} -gt 0 ]; then gosu cloudron:cloudron npm run plugin:uninstall -- -n peertube-plugin-auth-ldap
PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -c "UPDATE \"user\" SET \"pluginAuth\"='peertube-plugin-auth-openid-connect' WHERE \"pluginAuth\"='peertube-plugin-auth-ldap'"
fi
LDAP_PLUGIN_INSTALLED=$(PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -AXqtc "SELECT count(*) FROM \"plugin\" WHERE name='auth-ldap'") echo "==> Deleting LDAP settings"
if [ ${LDAP_PLUGIN_INSTALLED} -gt 0 ]; then PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -c "DELETE FROM \"plugin\" WHERE name='auth-ldap'"
echo "==> Uninstalling LDAP plugin"
gosu cloudron:cloudron npm run plugin:uninstall -- -n peertube-plugin-auth-ldap
echo "==> Deleting LDAP settings"
PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -c "DELETE FROM \"plugin\" WHERE name='auth-ldap'"
fi
fi fi
} }
@ -138,9 +131,11 @@ if [[ ! -f "/app/data/production.yaml" ]]; then
first_time_setup first_time_setup
else else
update_config update_config
migrate_ldap_to_oidc if [[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]]; then
install_oidc
[[ -n "${CLOUDRON_OIDC_ISSUER:-}" ]] && update_oidc migrate_ldap_to_oidc
update_oidc
fi
fi fi
echo "==> Configuring nginx" echo "==> Configuring nginx"

View file

@ -123,19 +123,16 @@ describe('Application life cycle test', function () {
async function completeSetup() { async function completeSetup() {
let button; let button;
// await browser.executeScript('localStorage.clear();');
await browser.get(`https://${app.fqdn}`); await browser.get(`https://${app.fqdn}`);
await browser.sleep(2000); await browser.sleep(2000);
if (await browser.findElements(By.xpath('//a[contains(text(), "Configure my instance")]')).then(found => !!found.length)) { await waitForElement(By.xpath('//a[contains(text(), "Configure my instance")]'));
// await waitForElement(By.xpath('//a[contains(text(), "Configure my instance")]')); await browser.findElement(By.xpath('//a[contains(text(), "Configure my instance")]')).click(); // this opens a new window
await browser.findElement(By.xpath('//a[contains(text(), "Configure my instance")]')).click(); // this opens a new window
let say_cmd = await getOS() == "Darwin" ? "say" : "spd-say"; let say_cmd = await getOS() == "Darwin" ? "say" : "spd-say";
execSync(`${say_cmd} "Close the newly opened configuration tab."`); execSync(`${say_cmd} "Close the newly opened configuration tab."`);
await rl.question('Is tab closed? '); await rl.question('Is tab closed? ');
}
} }
async function uploadVideo() { async function uploadVideo() {