in lib/ic/info_release.go [346:397]
func toRememberedConsentPreference(r *http.Request) (*cspb.RememberedConsentPreference, error) {
now := time.Now()
rcp := &cspb.RememberedConsentPreference{
RequestMatchType: cspb.RememberedConsentPreference_NONE,
ReleaseType: cspb.RememberedConsentPreference_SELECTED,
CreateTime: timeutil.TimestampProto(now),
ExpireTime: timeutil.TimestampProto(now.Add(rememberedConsentExpires)),
}
for k, v := range r.PostForm {
switch k {
case "state":
continue
case "profile.name":
rcp.ReleaseProfileName = true
case "profile.email":
rcp.ReleaseProfileEmail = true
case "profile.others":
rcp.ReleaseProfileOther = true
case "account_admin":
rcp.ReleaseAccountAdmin = true
case "link":
rcp.ReleaseLink = true
case "identities":
rcp.ReleaseIdentities = true
case "select-anything":
rcp.ReleaseType = cspb.RememberedConsentPreference_ANYTHING_NEEDED
case "remember":
if len(v) == 0 {
return nil, fmt.Errorf("remember format invalid")
}
switch v[0] {
case "remember-samesubset":
rcp.RequestMatchType = cspb.RememberedConsentPreference_SUBSET
case "remember-any":
rcp.RequestMatchType = cspb.RememberedConsentPreference_ANYTHING
case "remember-none":
rcp.RequestMatchType = cspb.RememberedConsentPreference_NONE
default:
return nil, fmt.Errorf("remember value invalid: %v", v[0])
}
default:
visa, err := checkboxIDToConsentVisa(k)
if err != nil {
return nil, err
}
rcp.SelectedVisas = append(rcp.SelectedVisas, visa)
}
}
return rcp, nil
}