Description
When the latest RollCall is re-opened, FE2 client considers the user to have no available token anymore, until the RollCall is closed again. This means we cannot send Chirps, use DigitalCash or see our Token in Tokens tab, until this RC is closed again?
Expected behavior
If we received a Token from a finished RollCall, this Token should remain valid even if the RC re-opens afterwards.
How to reproduce
- Create a LAO, Join it with another device, create a
RollCall, Scan your second device and close the RollCall
- Use the second device and see that the token is valid (send chirps, check
Tokens tab)
- On first device (organizer), re-open the
RollCall
- See, for example, error toast in
Chirps feed, and the fact that you cannot send Chirps anymore.
Front-ends:
Back-ends:
Impact
Large user experience and availability impact. If a RollCall is re-opened, you are denied of your actions as a fair user that participated in a RollCall
Possible root cause
|
val validToken: PoPToken |
|
get() = keyManager.getValidPoPToken(laoId!!, rollCallRepo.getLastClosedRollCall(laoId!!)) |
All fragments/viewmodels are retrieving
PoP Token this way. Maybe investigate why
getLastClosedRollCall() function does not take into account a previously closed but re-opened
RollCall.
A very quick check shows that it only returns roll calls which state is CLOSED. This statement is not sufficient to infer the presence of a valid PoP Token, as described in this Issue.
Description
When the latest
RollCallis re-opened, FE2 client considers the user to have no available token anymore, until theRollCallis closed again. This means we cannot sendChirps, useDigitalCashor see our Token inTokenstab, until thisRCis closed again?Expected behavior
If we received a Token from a finished
RollCall, this Token should remain valid even if theRCre-opens afterwards.How to reproduce
RollCall, Scan your second device and close theRollCallTokenstab)RollCallChirpsfeed, and the fact that you cannot sendChirpsanymore.Front-ends:
Back-ends:
Impact
Large user experience and availability impact. If a
RollCallis re-opened, you are denied of your actions as a fair user that participated in aRollCallPossible root cause
popstellar/fe2-android/app/src/main/java/com/github/dedis/popstellar/ui/lao/digitalcash/DigitalCashViewModel.kt
Lines 252 to 253 in e47fa9a
All fragments/viewmodels are retrieving
PoP Tokenthis way. Maybe investigate whygetLastClosedRollCall()function does not take into account a previously closed but re-openedRollCall.A very quick check shows that it only returns roll calls which state is
CLOSED. This statement is not sufficient to infer the presence of a validPoP Token, as described in this Issue.