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.