AP_CLEANER,
CONTACT_FORM_LIFETIME,
RESUMABLE_UPLOAD_SESSION_LIFETIME,
- TRACKER_RATE_LIMITS,
TWO_FACTOR_AUTH_REQUEST_TOKEN_LIFETIME,
- USER_EMAIL_VERIFY_LIFETIME,
+ EMAIL_VERIFY_LIFETIME,
USER_PASSWORD_CREATE_LIFETIME,
USER_PASSWORD_RESET_LIFETIME,
VIEW_LIFETIME,
/* ************ Email verification ************ */
- async setVerifyEmailVerificationString (userId: number) {
+ async setUserVerifyEmailVerificationString (userId: number) {
const generatedString = await generateRandomString(32)
- await this.setValue(this.generateVerifyEmailKey(userId), generatedString, USER_EMAIL_VERIFY_LIFETIME)
+ await this.setValue(this.generateUserVerifyEmailKey(userId), generatedString, EMAIL_VERIFY_LIFETIME)
return generatedString
}
- async getVerifyEmailLink (userId: number) {
- return this.getValue(this.generateVerifyEmailKey(userId))
+ async getUserVerifyEmailLink (userId: number) {
+ return this.getValue(this.generateUserVerifyEmailKey(userId))
+ }
+
+ async setRegistrationVerifyEmailVerificationString (registrationId: number) {
+ const generatedString = await generateRandomString(32)
+
+ await this.setValue(this.generateRegistrationVerifyEmailKey(registrationId), generatedString, EMAIL_VERIFY_LIFETIME)
+
+ return generatedString
+ }
+
+ async getRegistrationVerifyEmailLink (registrationId: number) {
+ return this.getValue(this.generateRegistrationVerifyEmailKey(registrationId))
}
/* ************ Contact form per IP ************ */
return this.exists(this.generateIPViewKey(ip, videoUUID))
}
- /* ************ Tracker IP block ************ */
-
- setTrackerBlockIP (ip: string) {
- return this.setValue(this.generateTrackerBlockIPKey(ip), '1', TRACKER_RATE_LIMITS.BLOCK_IP_LIFETIME)
- }
-
- async doesTrackerBlockIPExist (ip: string) {
- return this.exists(this.generateTrackerBlockIPKey(ip))
- }
-
/* ************ Video views stats ************ */
addVideoViewStats (videoId: number) {
return 'two-factor-request-' + userId + '-' + token
}
- private generateVerifyEmailKey (userId: number) {
- return 'verify-email-' + userId
+ private generateUserVerifyEmailKey (userId: number) {
+ return 'verify-email-user-' + userId
}
- private generateIPViewKey (ip: string, videoUUID: string) {
- return `views-${videoUUID}-${ip}`
+ private generateRegistrationVerifyEmailKey (registrationId: number) {
+ return 'verify-email-registration-' + registrationId
}
- private generateTrackerBlockIPKey (ip: string) {
- return `tracker-block-ip-${ip}`
+ private generateIPViewKey (ip: string, videoUUID: string) {
+ return `views-${videoUUID}-${ip}`
}
private generateContactFormKey (ip: string) {
}
private async setValue (key: string, value: string, expirationMilliseconds?: number) {
- let result
-
- if (expirationMilliseconds !== undefined) {
- result = await this.client.set(this.prefix + key, value, 'PX', expirationMilliseconds)
- } else {
- result = await this.client.set(this.prefix + key, value)
- }
+ const result = expirationMilliseconds !== undefined
+ ? await this.client.set(this.prefix + key, value, 'PX', expirationMilliseconds)
+ : await this.client.set(this.prefix + key, value)
if (result !== 'OK') throw new Error('Redis set result is not OK.')
}