Protection mode behavior in Contribution

We had upgraded Indico v1.2 -> 2.0 -> 2.1.
It seems that behavior of Protection mode in Contribution is different between v1 and v2.

Is it specification change ?

Example, an Event had 1 Contribution.

( Before migration )

  • The Event’s Protection mode was ‘RESTRICTED’ with access key.
  • The Contribution’s Protection mode was ‘RESTRICTED’ without no ACL in Indico v1.
  • In Indico v1, we were able to see the Contribution after accessed the Event with access key.

( After migration )

  • The Event’s Protection mode is ‘Protected’ with access key in Indico v2.
  • The Contribution’s Protection mode is ‘Protected’ without no ACL in Indico v2.
  • Now, we can’t see the Contribution after accessed the Event with access key.

I don’t remember how it was in 1.2 (it’s been half a decade…), but in 2.x something that is set to restricted only grants access to people on the ACL and managers of the parent object. I think this is just logical, because the behavior you describe in “before” is what you get from “inheriting”…

Thank you for your reply.
I understand that the behavior in Indico v1 is ‘INHERITING’.

Please let me ask one question.
At Indico v2, how can I change all Contribution’s Protection mode ( to ‘Inheriting’ ) in an Event at once ?
I can use both GUI and indico shell.

That should do the trick (from the indico shell)

>>> from indico.core.db.sqlalchemy.protection import ProtectionMode
>>> ev = E(event_id)
>>> Contribution.query.with_parent(ev).update({'protection_mode': ProtectionMode.inheriting}, synchronize_session=False)
>>> db.session.commit()

( I changed Category for this topic to ‘Migration from 1.2 to 2.0’ )

Thank you for your trick.
I confirmed it works in my environment.

I appreciate your quick and clear answers.