Add basic BetaProgram feature.
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
BetaProgramHandler = require './BetaProgramHandler'
|
||||
UserLocator = require "../User/UserLocator"
|
||||
Settings = require "settings-sharelatex"
|
||||
logger = require 'logger-sharelatex'
|
||||
|
||||
|
||||
module.exports = BetaProgramController =
|
||||
|
||||
optIn: (req, res, next) ->
|
||||
user_id = req?.session?.user?._id
|
||||
logger.log {user_id}, "user opting in to beta program"
|
||||
if !user_id
|
||||
return next(new Error("no user id in session"))
|
||||
BetaProgramHandler.optIn user_id, (err) ->
|
||||
if err
|
||||
return next(err)
|
||||
return res.redirect "/"
|
||||
|
||||
optInPage: (req, res, next)->
|
||||
user_id = req.session?.user?._id
|
||||
logger.log {user_id}, "showing beta opt-in page for user"
|
||||
UserLocator.findById user_id, (err, user)->
|
||||
if err
|
||||
logger.err {err, user_id}, "error fetching user"
|
||||
return next(err)
|
||||
res.render 'beta_program/opt_in',
|
||||
title:'beta_program_opt_in'
|
||||
user: user,
|
||||
languages: Settings.languages,
|
||||
@@ -0,0 +1,18 @@
|
||||
User = require("../../models/User").User
|
||||
logger = require 'logger-sharelatex'
|
||||
metrics = require("../../infrastructure/Metrics")
|
||||
|
||||
module.exports = BetaProgramHandler =
|
||||
|
||||
optIn: (user_id, callback=(err)->) ->
|
||||
User.findById user_id, (err, user) ->
|
||||
if err
|
||||
logger.err {err, user_id}, "problem adding user to beta"
|
||||
return callback(err)
|
||||
metrics.inc "beta-program.opt-in"
|
||||
user.betaProgram = true
|
||||
user.save (err) ->
|
||||
if err
|
||||
logger.err {err, user_id}, "problem adding user to beta"
|
||||
return callback(err)
|
||||
return callback(null)
|
||||
Reference in New Issue
Block a user