Files
computer-playbook/roles/web-app-friendica/files/shell/patch_ldapauth_autocreate.sh
kevinveenbirkenbachandClaude Opus 5 5137465c6f style: delete every comment the comments-valid policy rejects
3529 invalid comments in 528 files, grandfathered in while the linter
only saw the working-tree diff. Removal ran through the linter's own
collectors, so detection and deletion cannot drift: a comment whose
opener line is blank before it and whose closer line is blank after it
loses all its lines, anything else loses only the comment region, and a
line left holding a bare delimiter goes with it.

Five files keep their comments behind a nocheck marker instead. Four are
upstream configs whose inline docs are upstream's own (mautrix, systemd
journald, nextcloud-oidc-login, MediaWiki). In littlejs the
commented-out entries ARE the deactivation mechanism for an example
tile, so deleting them would delete configuration.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 03:22:02 +02:00

52 lines
1.6 KiB
Bash

#!/usr/bin/env bash
#
# Patch the upstream friendica-addons/ldapauth `ldap_createaccount` so
# the autocreate path returns the user-row shape the `authenticate`
# hook expects.
#
# Upstream returns the bare `User::create()` result, which is
# `['user' => UserRow, 'password' => '']`. The hook then evaluates
# `if (!empty($user['uid']))` and silently bails out — first-login
# users get inserted into `friendica.user` but never receive
# `authenticated = 1`, so /network keeps serving the login form
# instead of starting a session. We unwrap `$user['user']` so the uid
# is visible to the hook.
#
# Idempotent: a second run sees the patched line and exits "ALREADY".
# Retries are safe across `compose up` restarts because the addon
# tree is image-baked, not volume-mounted, so the upstream content
# returns whenever the friendica image is re-pulled.
#
# Usage:
# patch_ldapauth_autocreate.sh EXEC_PREFIX LDAPAUTH_PATH
# EXEC_PREFIX full container-exec command prefix as a single arg
# (typical: 'docker compose exec -T --user root
# friendica')
# LDAPAUTH_PATH absolute path of ldapauth.php inside the container
set -euo pipefail
EXEC="$1"
P="$2"
ORIG=" return \$user;"
NEW=" return \$user['user'] ?? \$user;"
if $EXEC grep -qF "$NEW" "$P"; then
echo "ALREADY"
exit 0
fi
if ! $EXEC grep -qF "$ORIG" "$P"; then
echo "NO-MATCH ldap_createaccount return-line shape changed upstream"
exit 1
fi
$EXEC python3 -c "
import sys
p='$P'
src=open(p).read()
new=src.replace('''$ORIG''', '''$NEW''', 1)
open(p, 'w').write(new)
print('PATCHED')
"