mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-06-10 01:24:20 +02:00
Add dev volunteers to anonymized accounts
This commit is contained in:
parent
b3189e3bf4
commit
b21b77e513
@ -192,7 +192,7 @@ Tu n'y es absolument pas obligé(e) ! C'est juste plus pratique.
|
|||||||
|
|
||||||
const isChecked = event.target.value === "oui"
|
const isChecked = event.target.value === "oui"
|
||||||
if (!isChecked) {
|
if (!isChecked) {
|
||||||
setNotifMessage("")
|
setNotifMessage("Réponse mémorisée.")
|
||||||
setAcceptsNotifs("non")
|
setAcceptsNotifs("non")
|
||||||
dispatch(
|
dispatch(
|
||||||
fetchVolunteerNotifsSet(jwtToken, 0, {
|
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.pushNotificationsContent}>
|
||||||
<div className={styles.formLine} key="line-participation">
|
<div className={styles.formLine} key="line-participation">
|
||||||
<label>
|
<label>
|
||||||
Acceptes-tu de recevoir une alerte dans ton navigateur quand on aura
|
Tu as fait le tour des dernières infos ou questions importantes,
|
||||||
une info ou question importante à te poser ici sur le site ?<br />
|
merci ! :)
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
Acceptes-tu de recevoir une alerte dans ton navigateur quand on en
|
||||||
|
aura d'autres spécifiquement pour toi ?<br />
|
||||||
<span className={styles.sousMessage}>
|
<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>
|
</span>
|
||||||
<label>
|
<label>
|
||||||
<input
|
<input
|
||||||
@ -353,6 +358,10 @@ Tu n'y es absolument pas obligé(e) ! C'est juste plus pratique.
|
|||||||
</label>
|
</label>
|
||||||
</label>
|
</label>
|
||||||
<div className={styles.message}>{notifMessage}</div>
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -213,11 +213,11 @@ export class Sheet<
|
|||||||
async dbFirstLoad(): Promise<void> {
|
async dbFirstLoad(): Promise<void> {
|
||||||
if (!(await hasGSheetsAccess())) {
|
if (!(await hasGSheetsAccess())) {
|
||||||
await this.loadLocalDb()
|
await this.loadLocalDb()
|
||||||
|
} else if (this.toRunAfterLoad && __DEV__) {
|
||||||
|
this.toRunAfterLoad.push(() => this.saveLocalDb())
|
||||||
}
|
}
|
||||||
this.dbLoad()
|
|
||||||
if (__DEV__ && (await hasGSheetsAccess())) {
|
await this.dbLoad()
|
||||||
this.saveLocalDb()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async dbSaveAsync(): Promise<void> {
|
private async dbSaveAsync(): Promise<void> {
|
||||||
|
@ -38,11 +38,11 @@ export async function saveLocalDb(
|
|||||||
states[name] = state
|
states[name] = state
|
||||||
types[name] = type
|
types[name] = type
|
||||||
const toSave = { states, types }
|
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)
|
await fs.writeFile(DB_PATH, jsonDB)
|
||||||
|
|
||||||
toSave.states = anonimizedDb(toSave.states)
|
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)
|
await fs.writeFile(ANONYMIZED_DB_PATH, jsonAnonimizedDB)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -253,47 +253,73 @@ function anonimizedDb(_s: States): States {
|
|||||||
const s = _.cloneDeep(_s)
|
const s = _.cloneDeep(_s)
|
||||||
if (s.Volunteers) {
|
if (s.Volunteers) {
|
||||||
;(s.Volunteers as Volunteer[]).forEach((v) => {
|
;(s.Volunteers as Volunteer[]).forEach((v) => {
|
||||||
v.firstname = fakeFirstnames[numberToRand(v.id) % fakeFirstnames.length]
|
anonimizedNameEmailMobile(v)
|
||||||
v.lastname = fakeLastnames[numberToRand(v.id) % fakeLastnames.length]
|
if (!idADev(v)) {
|
||||||
const fakeEmailDomain = fakeEmailDomains[numberToRand(v.id) % fakeEmailDomains.length]
|
v.photo = `${v.firstname}_${v.lastname}.jpg`.toLowerCase()
|
||||||
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"
|
|
||||||
}
|
}
|
||||||
v.pushNotifSubscription =
|
anonimizedPasswords(v)
|
||||||
v.id % 13 === 0
|
anonimizedNotifs(v)
|
||||||
? '{"endpoint":"https://fcm.googleapis.com/fcm/send/f-EAfakedfakedU:APA91fakedfakedzIk-DEglfakedfaked9ugI--ljtfakedfakedfakedfakedfakedfakedP3t-ggU7Afakedfakedfakedkai","expirationTime":null,"keys":{"p256dh":"BEZOJSfakedfakedfakedfakedfakedfakedfakedfakedfakedfakedgYs-cafakedw","auth":"GlMfakedfakedFRg"}}'
|
|
||||||
: ""
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (s.PreVolunteers) {
|
if (s.PreVolunteers) {
|
||||||
;(s.PreVolunteers as PreVolunteer[]).forEach((v) => {
|
;(s.PreVolunteers as PreVolunteer[]).forEach((v) => {
|
||||||
v.firstname = fakeFirstnames[numberToRand(v.id) % fakeFirstnames.length]
|
anonimizedNameEmailMobile(v)
|
||||||
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.comment = v.id % 3 === 0 ? "Bonjour, j'adore l'initiative!" : ""
|
v.comment = v.id % 3 === 0 ? "Bonjour, j'adore l'initiative!" : ""
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return s
|
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) {
|
function numberToRand(n: number) {
|
||||||
return (1664525 * n + 1013904223) % 512
|
return (1664525 * n + 1013904223) % 512
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user