-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reconsidering how to handle consent #1016
Comments
At a very high level, I'm thinking about how we need to make sure that the user has consented to the terms "recently enough" that they are up-to-date with the terms and conditions. What I'm thinking is that we could store the date that they last consented, and then if we ever change the conditions, we will just need to check that their consent date is at least as recent as the last time we updated the conditions. Would that work? There could be a consideration that I'm missing, but this seems like our main goal is to ensure that they have agreed, and have a way to check if they are out-of-date with the agreement, rather than needing to store a specific protocol number. |
Right now, the consent required, and stored, is Stepping further into this hypothetical situation, I think it could make sense to check, as we do with permissions, each time the user opens the app. If the stored date is earlier than the required date, then we take them back to that screen. I think we'd be able to leverage the existing onboarding stack for this -- set the "agreed to protocol" variable to false, and go back to the that page, then be able to skip the rest of the pages since the other variables that control that state will be unchanged? With the changes from #1006, we'll need to ensure that the new consent does get saved to storage, since we're now doing that upon fixing permissions and logging in... so maybe we log them out just enough that they have to reconsent and are "logged in" (to save the new consent) but don't have to get through the QR page or the survey? |
In our meeting today, we decided the best plan would be to remove re-consent for now, and then potentially restore it later once we know how we need to handle updating those conditions in the NREL paradigm |
@shankari If I take out "reconsent" do you want me to take the "check consent" out of the profile (for now)? I've been experimenting with showing a message about the last date they consented if the consent is stored, and sending them back into the onboarding flow if consent is not stored. I believe this would only account for the case of "missing consent" rather than "reconsent", though missing consent should not be possible if someone has cleared the onboarding flow. What do you think? |
@Abby-Wheelis they might run into the situation with missing consent after clearing the onboarding flow if we run into the situation with the local storage being reset (e.g. )?! Or do we store the consent with de-duplication between plugin and browser localStorage as well? |
@shankari, the consent is stored in both native and local storage when we call
|
If we are convinced that there is no duplication because of the storage in both local and native, would we then be comfortable removing the "check consent" button from the profile? I can think of three options for how to proceed:
|
I agree that the data is stored in both the native cache and in local storage. However, the keys are not the same.
Right, I do believe that the UI will read the de-duplicated value. However, the UI is not the only component that checks the consent. We use And if A principled fix might be to unify the two checks (UI and native code) by having the native |
This was implemented, and on staging, when I click "check consent", I get the message about "consented to ...". The next step is to implement a principled fix such as
|
It has been mentioned a few times, but we may need to reconsider how we handle collecting and storing consent from the user.
I'm starting the process of rewriting 'splash/startprefs.js`, which has about 5 different functions related to marking, storing, and retrieving the consent. Since I'll be working on these functions anyway, it might be useful to go ahead and re-consider our handling of consent, as I noted in #977 (comment).
The text was updated successfully, but these errors were encountered: