Incompatibilité entre les plugins Cakeday, Data-Explorer et Animated Avatar

Salut @piffy :slight_smile:

Pour information, j’ai installé Animated Avatars sur mon site de test (ainsi que Cakeday :cake:), et je pense pouvoir reproduire cette erreur. :+1:

  • Installer et activer les deux plugins
  • Utiliser du code astucieux dans la console Rails [^1] pour définir la date de création de l’utilisateur de test il y a un an aujourd’hui
  • Accéder à /cakeday/anniversaries/today
  • Erreur 500
Message (4 copies signalées)

ActiveModel::MissingAttributeError (attribut manquant : admin)
app/models/concerns/roleable.rb:14:in `staff?'
lib/plugin/instance.rb:297:in `public_send'
lib/plugin/instance.rb:297:in `block (2 levels) in add_to_class'
(eval):8:in `_fast_attributes'
app/controllers/application_controller.rb:521:in `serialize_data'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'

Backtrace

activemodel (7.0.3.1) lib/active_model/attribute.rb:226:in `value'
activemodel (7.0.3.1) lib/active_model/attribute_set/builder.rb:43:in `fetch_value'
activerecord (7.0.3.1) lib/active_record/attribute_methods/read.rb:38:in `_read_attribute'
activemodel (7.0.3.1) lib/active_model/attribute_methods.rb:277:in `admin'
app/models/concerns/roleable.rb:14:in `staff?'
plugins/discourse-animated-avatars/plugin.rb:90:in `block (2 levels) in activate!'
lib/plugin/instance.rb:297:in `public_send'
lib/plugin/instance.rb:297:in `block (2 levels) in add_to_class'
activesupport (7.0.3.1) lib/active_support/core_ext/object/try.rb:15:in `public_send'
activesupport (7.0.3.1) lib/active_support/core_ext/object/try.rb:15:in `try'

Je pensais pouvoir essayer une méthode plus simple et faire la même chose pour les anniversaires afin d’éviter de tripoter la console Rails, mais /cakeday/birthdays/today semblait fonctionner correctement.

[^1] : user = User.where(username: ‘Test_Three’)
user.update(created_at: “2022-01-11 00:00:00.00000”)

2 « J'aime »