Add dev volunteers to anonymized accounts

This commit is contained in:
pikiou 2022-02-02 01:31:57 +01:00
parent b3189e3bf4
commit b21b77e513
3 changed files with 75 additions and 40 deletions

View File

@ -192,7 +192,7 @@ Tu n'y es absolument pas obligé(e) ! C'est juste plus pratique.
const isChecked = event.target.value === "oui"
if (!isChecked) {
setNotifMessage("")
setNotifMessage("Réponse mémorisée.")
setAcceptsNotifs("non")
dispatch(
fetchVolunteerNotifsSet(jwtToken, 0, {
@ -326,10 +326,15 @@ Tu n'y es absolument pas obligé(e) ! C'est juste plus pratique.
<div className={styles.pushNotificationsContent}>
<div className={styles.formLine} key="line-participation">
<label>
Acceptes-tu de recevoir une alerte dans ton navigateur quand on aura
une info ou question importante à te poser ici sur le site ?<br />
Tu as fait le tour des dernières infos ou questions importantes,
merci ! :)
<br />
<br />
Acceptes-tu de recevoir une alerte dans ton navigateur quand on en
aura d&apos;autres spécifiquement pour toi ?<br />
<span className={styles.sousMessage}>
(Ça simplifierait grandement notre organisation !!)
(Ça nous simplifierait la vie, on a des soucis à contacter les
bénévoles par email.)
</span>
<label>
<input
@ -353,6 +358,10 @@ Tu n'y es absolument pas obligé(e) ! C'est juste plus pratique.
</label>
</label>
<div className={styles.message}>{notifMessage}</div>
<span className={styles.sousMessage}>
Pas besoin de valider, le site mémorise automatiquement si tu
changes ta réponse.
</span>
</div>
</div>
</div>

View File

@ -213,11 +213,11 @@ export class Sheet<
async dbFirstLoad(): Promise<void> {
if (!(await hasGSheetsAccess())) {
await this.loadLocalDb()
} else if (this.toRunAfterLoad && __DEV__) {
this.toRunAfterLoad.push(() => this.saveLocalDb())
}
this.dbLoad()
if (__DEV__ && (await hasGSheetsAccess())) {
this.saveLocalDb()
}
await this.dbLoad()
}
private async dbSaveAsync(): Promise<void> {

View File

@ -38,11 +38,11 @@ export async function saveLocalDb(
states[name] = state
types[name] = type
const toSave = { states, types }
const jsonDB = __DEV__ ? JSON.stringify(toSave, null, 2) : JSON.stringify(toSave)
const jsonDB = __DEV__ ? JSON.stringify(toSave, null, 4) : JSON.stringify(toSave)
await fs.writeFile(DB_PATH, jsonDB)
toSave.states = anonimizedDb(toSave.states)
const jsonAnonimizedDB = __DEV__ ? JSON.stringify(toSave, null, 2) : JSON.stringify(toSave)
const jsonAnonimizedDB = __DEV__ ? JSON.stringify(toSave, null, 4) : JSON.stringify(toSave)
await fs.writeFile(ANONYMIZED_DB_PATH, jsonAnonimizedDB)
}
@ -253,47 +253,73 @@ function anonimizedDb(_s: States): States {
const s = _.cloneDeep(_s)
if (s.Volunteers) {
;(s.Volunteers as Volunteer[]).forEach((v) => {
v.firstname = fakeFirstnames[numberToRand(v.id) % fakeFirstnames.length]
v.lastname = fakeLastnames[numberToRand(v.id) % fakeLastnames.length]
const fakeEmailDomain = fakeEmailDomains[numberToRand(v.id) % fakeEmailDomains.length]
v.email = `${v.firstname}.${v.lastname}.${v.id}@${fakeEmailDomain}`.toLowerCase()
const mobileStart = v.mobile.match(/^\+?[0-9][0-9]/)
const mobileEnd = [1, 2, 3, 4]
.map((n) => `${numberToRand(v.id + n) % 10}${numberToRand(v.id + n + 10) % 10}`)
.join(" ")
v.mobile = v.mobile ? `${(mobileStart || ["06"])[0]} ${mobileEnd}` : ""
v.photo = `${v.firstname}_${v.lastname}.jpg`.toLowerCase()
v.password1 = "$2y$1a$Kt/FAKEFAKEFAKEFAKEc6.FAKEFAKEFAKEFAKE//FAKEFAKEFAKEy"
v.password2 = "$2y$1a$Kt/FAKEFAKEFAKEFAKEc6.FAKEFAKEFAKEFAKE//FAKEFAKEFAKEy"
v.acceptsNotifs = ""
if (v.id % 13 === 0) {
v.acceptsNotifs = "oui"
} else if (v.id % 251 === 0) {
v.acceptsNotifs = "non"
anonimizedNameEmailMobile(v)
if (!idADev(v)) {
v.photo = `${v.firstname}_${v.lastname}.jpg`.toLowerCase()
}
v.pushNotifSubscription =
v.id % 13 === 0
? '{"endpoint":"https://fcm.googleapis.com/fcm/send/f-EAfakedfakedU:APA91fakedfakedzIk-DEglfakedfaked9ugI--ljtfakedfakedfakedfakedfakedfakedP3t-ggU7Afakedfakedfakedkai","expirationTime":null,"keys":{"p256dh":"BEZOJSfakedfakedfakedfakedfakedfakedfakedfakedfakedfakedgYs-cafakedw","auth":"GlMfakedfakedFRg"}}'
: ""
anonimizedPasswords(v)
anonimizedNotifs(v)
})
}
if (s.PreVolunteers) {
;(s.PreVolunteers as PreVolunteer[]).forEach((v) => {
v.firstname = fakeFirstnames[numberToRand(v.id) % fakeFirstnames.length]
v.lastname = fakeLastnames[numberToRand(v.id) % fakeLastnames.length]
const fakeEmailDomain = fakeEmailDomains[numberToRand(v.id) % fakeEmailDomains.length]
v.email = `${v.firstname}.${v.lastname}.${v.id}@${fakeEmailDomain}`.toLowerCase()
const mobileStart = v.mobile.match(/^\+?[0-9][0-9]/)
const mobileEnd = [1, 2, 3, 4]
.map((n) => `${numberToRand(v.id + n) % 10}${numberToRand(v.id + n + 10) % 10}`)
.join(" ")
v.mobile = v.mobile ? `${(mobileStart || ["06"])[0]} ${mobileEnd}` : ""
anonimizedNameEmailMobile(v)
v.comment = v.id % 3 === 0 ? "Bonjour, j'adore l'initiative!" : ""
})
}
return s
}
function idADev(v: Volunteer | PreVolunteer): boolean {
const devList = ["Pierre Scelles", "Manuel Emeriau", "Timothé Caillaud"]
return devList.includes(`${v.firstname} ${v.lastname}`)
}
function anonimizedNameEmailMobile(v: Volunteer | PreVolunteer): void {
if (idADev(v)) {
return
}
v.firstname = fakeFirstnames[numberToRand(v.id) % fakeFirstnames.length]
v.lastname = fakeLastnames[numberToRand(v.id) % fakeLastnames.length]
const fakeEmailDomain = fakeEmailDomains[numberToRand(v.id) % fakeEmailDomains.length]
v.email = `${v.firstname}.${v.lastname}.${v.id}@${fakeEmailDomain}`.toLowerCase()
const mobileStart = v.mobile.match(/^\+?[0-9][0-9]/)
const mobileEnd = [1, 2, 3, 4]
.map((n) => `${numberToRand(v.id + n) % 10}${numberToRand(v.id + n + 10) % 10}`)
.join(" ")
v.mobile = v.mobile ? `${(mobileStart || ["06"])[0]} ${mobileEnd}` : ""
}
function anonimizedPasswords(v: Volunteer): void {
if (idADev(v)) {
v.password1 = "$2b$10$CMv7lEQKWM7XEJtumt0qsOw4dPANs6lT6dI2N27XmJP0Jm4rscmq."
return
}
v.password1 = "$2y$1a$Kt/FAKEFAKEFAKEFAKEc6.FAKEFAKEFAKEFAKE//FAKEFAKEFAKEy"
v.password2 = "$2y$1a$Kt/FAKEFAKEFAKEFAKEc6.FAKEFAKEFAKEFAKE//FAKEFAKEFAKEy"
}
function anonimizedNotifs(v: Volunteer): void {
if (idADev(v)) {
return
}
v.acceptsNotifs = ""
if (v.id % 13 === 0) {
v.acceptsNotifs = "oui"
} else if (v.id % 251 === 0) {
v.acceptsNotifs = "non"
}
v.pushNotifSubscription =
v.id % 13 === 0
? '{"endpoint":"https://fcm.googleapis.com/fcm/send/f-EAfakedfakedU:APA91fakedfakedzIk-DEglfakedfaked9ugI--ljtfakedfakedfakedfakedfakedfakedP3t-ggU7Afakedfakedfakedkai","expirationTime":null,"keys":{"p256dh":"BEZOJSfakedfakedfakedfakedfakedfakedfakedfakedfakedfakedgYs-cafakedw","auth":"GlMfakedfakedFRg"}}'
: ""
}
function numberToRand(n: number) {
return (1664525 * n + 1013904223) % 512
}