<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cccms/test/fixtures, 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-07-31T22:27:34Z</updated>
<entry>
<title>Declare role requirements per controller</title>
<updated>2026-07-31T22:27:34Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-31T22:27:34Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=8bcacace28df52fd972c54e6850aa3b93f5c8bdf'/>
<id>urn:sha1:8bcacace28df52fd972c54e6850aa3b93f5c8bdf</id>
<content type='text'>
RoleRequired supplies require_redaktion and require_admin for surfaces that
are not nodes and so cannot be reached by Node#restricted?.

Navigation is content rather than plumbing, so menu_items requires
redaktion. User management is janitorial and requires admin: index, new,
create, reset_otp, deactivate, reactivate. verify_status now also covers
show, without which any logged-in user could read any account by walking a
small id space. Editing your own account stays open.

The dashboard hides the Users and Navigation buttons from those who cannot
use them; everything else stays visible to everyone. Both denials share one
message and land on the dashboard.

Adds redella (redaktion) and alufa (redaktion + alumni) fixtures.
</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>Remove dangling page references from the node fixtures</title>
<updated>2026-07-30T02:35:22Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-30T02:35:22Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=02250d025043f9953923a7be09605830d554db10'/>
<id>urn:sha1:02250d025043f9953923a7be09605830d554db10</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Drop the orphaned nested-set columns lft and rgt</title>
<updated>2026-07-17T19:58:32Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-07-17T19:58:32Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=e3021c88a0ce35b4c069e148a5d82bb1acbd3c91'/>
<id>urn:sha1:e3021c88a0ce35b4c069e148a5d82bb1acbd3c91</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stage 4: Rails 5.2 -&gt; 6.1 on Ruby 2.7.2</title>
<updated>2026-06-25T23:59:57Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-25T23:59:57Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=c06723ee715512c2033c7786c48f15674585b56b'/>
<id>urn:sha1:c06723ee715512c2033c7786c48f15674585b56b</id>
<content type='text'>
- routing-filter 0.6.3 -&gt; 0.7.0 (Rails 6.1 compatibility)
- RSS named routes rss_xml/rss_rdf added
- RouteWithParams workarounds: will_paginate_patch, content_path shim, safe_path helper
- Paperclip removed, replaced with FileAttachment concern (preserves URL scheme)
- Assets resource moved to /admin/assets (Sprockets middleware conflict)
- ApplicationRecord base class added, all models migrated
- Strong parameters added to Assets, Occurrences, Events, MenuItems controllers
- update_attributes -&gt; update throughout
- render :nothing -&gt; head :ok/:not_found throughout
- language_selector rewritten (removes :overwrite_params)
- Environment files updated for Rails 6.1 (eager_load, public_file_server, ActionMailer)
- Arel::Visitors::DepthFirst and Integer/Float duration patches removed from test_helper
- AssetsController tests added (10 tests covering upload, variants, destroy, auth)
- ImageMagick geometry: 460x250! for headline crop (not # which is invalid in IM6)

129 runs, 311 assertions, 5 failures (all pre-existing), 0 errors
</content>
</entry>
<entry>
<title>Stage 1 complete: Rails 2.3.5 to Rails 3.2.22.5 upgrade</title>
<updated>2026-06-24T02:13:16Z</updated>
<author>
<name>erdgeist</name>
<email>erdgeist@erdgeist.org</email>
</author>
<published>2026-06-24T02:13:16Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=e0a7e0fec760ba12c8067a37e10c96f1f05876e2'/>
<id>urn:sha1:e0a7e0fec760ba12c8067a37e10c96f1f05876e2</id>
<content type='text'>
- Converted plugins to gems (Gemfile)
- Updated config structure (application.rb, boot.rb, environment.rb)
- Converted routes to Rails 3 DSL
- Converted named_scope to scope throughout models
- Converted find(:all, :conditions) to where() chains
- Fixed has_many :order to use ordering scope
- Updated session store and secret token configuration
- Fixed exception_notification middleware configuration
- Patched Ruby 2.4 / Rails 3.2 incompatibilities:
  - Integer/Float duration arithmetic (ActiveSupport)
  - Arel visit_Integer for PostgreSQL adapter
  - create_database String/Integer coercion
  - ActionController consider_all_requests_local
- Migrated taggings schema for acts-as-taggable-on
- Replaced dynamic_form gem with custom form_error_messages helper
- Fixed Rails 3 block helper syntax (form_for, form_tag, fields_for)
- Fixed admin layout yield
- Updated test suite for Rails 3 APIs
</content>
</entry>
<entry>
<title>implemented complete restful user management interface including functional tests. this enables basic user operation. note that only admins are allowed to create, edit, destroy other users</title>
<updated>2009-10-07T19:03:28Z</updated>
<author>
<name>hukl</name>
<email>contact@smyck.org</email>
</author>
<published>2009-10-07T19:03:28Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=9dadc61cae2c4c01a97880e89ca86a0e760fc8d1'/>
<id>urn:sha1:9dadc61cae2c4c01a97880e89ca86a0e760fc8d1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>added related_assets to pages</title>
<updated>2009-09-01T08:40:57Z</updated>
<author>
<name>hukl</name>
<email>contact@smyck.org</email>
</author>
<published>2009-09-01T08:40:57Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=c95126d6b6abd6302a07fbb17cd9ad0181e048c7'/>
<id>urn:sha1:c95126d6b6abd6302a07fbb17cd9ad0181e048c7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>removed menu item fixtures to make the tests pass again</title>
<updated>2009-08-09T10:47:05Z</updated>
<author>
<name>hukl</name>
<email>contact@smyck.org</email>
</author>
<published>2009-08-09T10:47:05Z</published>
<link rel='alternate' type='text/html' href='http://erdgeist.org/gitweb/cccms/commit/?id=72593784d6d580ea8cc6987a83cf7b18167aba80'/>
<id>urn:sha1:72593784d6d580ea8cc6987a83cf7b18167aba80</id>
<content type='text'>
</content>
</entry>
</feed>
