<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/db/migrate, branch master</title>
<subtitle>[no description]</subtitle>
<id>http://erdgeist.org/gitweb/cccms/atom?h=master</id>
<link rel='self' href='http://erdgeist.org/gitweb/cccms/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/'/>
<updated>2026-08-20T10:55:19Z</updated>
<entry>
<title>Add migration for redirects flag and target</title>
<updated>2026-08-20T10:55:19Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-20T10:55:19Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=bc573fe863fcbfc536161edc54955de4408cf13f'/>
<id>urn:sha1:bc573fe863fcbfc536161edc54955de4408cf13f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Drop nodes.external_url</title>
<updated>2026-08-09T14:03:40Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-09T14:03:40Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=0f4288d91de7b48f7bbed832ca80246b0055cc64'/>
<id>urn:sha1:0f4288d91de7b48f7bbed832ca80246b0055cc64</id>
<content type='text'>
The column moved to page.rb and was now written only by publish_draft!
and by the chapter seed, and read by nothing.

lib/tasks/pages.rake goes with it. backfill_external_url reads the dropped
column. backfill_address is spent and no longer safe to re-run.
</content>
</entry>
<entry>
<title>Add external url to pages</title>
<updated>2026-08-08T00:50:31Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-08T00:50:31Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=5203b80f47786b8adc169e80d89cd69159c44b62'/>
<id>urn:sha1:5203b80f47786b8adc169e80d89cd69159c44b62</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Drop the staged address columns from nodes</title>
<updated>2026-08-07T18:46:45Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-07T18:46:45Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=65a182112c52e9ba512bf172e1f2cdaadae9a7a5'/>
<id>urn:sha1:65a182112c52e9ba512bf172e1f2cdaadae9a7a5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move the pending address from the node onto the draft</title>
<updated>2026-08-07T04:15:14Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-07T04:15:14Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=f4ddfff03ca9f25d50f39a1971877362d85eb9cb'/>
<id>urn:sha1:f4ddfff03ca9f25d50f39a1971877362d85eb9cb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Log user logins and reconstruct last activity from logs</title>
<updated>2026-08-02T21:55:38Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-08-02T21:55:38Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=c63c4620d1c659712cec93e354e84f5017bd6254'/>
<id>urn:sha1:c63c4620d1c659712cec93e354e84f5017bd6254</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Group user accounts by role</title>
<updated>2026-07-31T13:55:43Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-31T13:55:43Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=464dd4266bdc433805010b5dca428f4cb75c2a81'/>
<id>urn:sha1:464dd4266bdc433805010b5dca428f4cb75c2a81</id>
<content type='text'>
Replaces the two-way admin/user split with four groups ordered by
capability: administration, Redaktion, editors, alumni. alumni takes
precedence over capability in role_group, so a retired admin appears at the
bottom rather than the top.

Forms now offer the three roles as checkboxes rather than a single admin
checkbox, with a trailing hidden blank so an empty set can be posted, and
user_params permits roles only for admins. Three create buttons prefill the
common combinations.
</content>
</entry>
<entry>
<title>Retire the unused per-node permission subsystem</title>
<updated>2026-07-31T12:35:16Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-31T12:35:16Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=5f17f421b176d48ef556fb379f59bbb7d284b48e'/>
<id>urn:sha1:5f17f421b176d48ef556fb379f59bbb7d284b48e</id>
<content type='text'>
Every path through Permission raised or lied: validates_presence_of on a
boolean made granted = false unsaveable, since false.blank? is true;
get_permission_for read a nonexistent identifier attribute; has_permission?
called an undefined plural method and returned a truthy relation in every
case; and set_permission mutated granted without saving. Nothing outside the
model referenced it and the table was empty.
</content>
</entry>
<entry>
<title>Add TOTP enrollment and verification to User, witnessed in the action log</title>
<updated>2026-07-24T11:11:51Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-24T11:11:51Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=02e1aefa24cdd0339995d14431713822f4bf4718'/>
<id>urn:sha1:02e1aefa24cdd0339995d14431713822f4bf4718</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add action_participants migration</title>
<updated>2026-07-23T01:53:07Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-23T01:53:07Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=52cd07b6ff191efd25938b173b7eb14411fec3e4'/>
<id>urn:sha1:52cd07b6ff191efd25938b173b7eb14411fec3e4</id>
<content type='text'>
</content>
</entry>
</feed>
