export ENTRYPOINT_VERSION=v3 export AUTO_WIZARD_VERSION=v2 export PG_BACKUP_VERSION=v2 get_setting_changes() { /custom-entrypoint.sh "bundle exec rails r 'puts JSON.pretty_generate(JSON.parse(Setting.all.select{ |setting| setting.state_current != setting.state_initial }.map { |setting| {name: setting.name, value: setting.state_current[\""value\""]} } .to_json))'" } console() { /custom-entrypoint.sh "bundle exec rails c" } rails_run() { COMMAND="bundle exec rails r \"$@\"" /custom-entrypoint.sh "$COMMAND" } init() { cp -f /opt/zammad/contrib/auto_wizard.json /tmp/auto_wizard.json /custom-entrypoint.sh "bundle exec rake zammad:setup:auto_wizard[/tmp/auto_wizard.json]" } enable_authentik_sso() { ADMIN_UID=$(abra app cmd -T $SSO_PROVIDER_DOMAIN worker get_user_uid akadmin) CERT=$(abra app cmd -T $SSO_PROVIDER_DOMAIN worker get_certificate zammad) COMMAND=" (u = User.find_by(login: 'admin')) && (u.login='$ADMIN_UID') && u.save!; Setting.set('auth_saml', true); Setting.set('auth_third_party_auto_link_at_inital_login', true); Setting.set('auth_saml_credentials', { 'display_name'=>'$ORGANIZATION', 'idp_sso_target_url'=>'$IDP_SSO_TARGET_URL', 'idp_slo_service_url'=>'$IDP_SLO_SERVICE_URL', 'idp_cert'=>'$CERT', 'idp_cert_fingerprint'=>'', 'name_identifier_format'=>'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress'}) " abra app cmd -T $DOMAIN zammad-railsserver rails_run "$(printf "%q " $COMMAND)" } set_logo() { LOGO_PATH="$1" abra app cp "$APP_NAME" "$LOGO_PATH" zammad-railsserver:/tmp/ filename="$(basename "$LOGO_PATH")" COMMAND=" logo_path = '/tmp/$filename'; logo_content = File.open(logo_path, 'rb') { |file| file.read }; logo_timestamp = Service::SystemAssets::ProductLogo.store(logo_content); Setting.set('product_logo', logo_timestamp); " abra app cmd -T $DOMAIN zammad-railsserver rails_run "$(printf "%q " $COMMAND)" } fix_permissions() { i=0 while ! abra app run -t -u 0 $DOMAIN zammad-elasticsearch -- chown elasticsearch -Rv /usr/share/elasticsearch/data && [[ $i -lt 30 ]]; do ((i++)) sleep 1 done }