Просмотр исходного кода

skeleton of `inviteToProject` function

Shane Kilkelly 10 лет назад
Родитель
Сommit
a4c7db5f20

+ 29 - 4
services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee

@@ -1,11 +1,36 @@
+ProjectGetter = require "../Project/ProjectGetter"
+LimitationsManager = require "../Subscription/LimitationsManager"
+UserGetter = require "../User/UserGetter"
 CollaboratorsInviteHandler = require('./CollaboratorsInviteHandler')
+mimelib = require("mimelib")
+logger = require('logger-sharelatex')
 
 module.exports = CollaboratorsInviteController =
 
-	inviteToProject: (req, res) ->
+	inviteToProject: (req, res, next) ->
+		projectId = req.params.Project_id
+		email = req.body.email
+		sendingUserId = req.session?.user_id
+		logger.log {projectId, email, sendingUserId}, "inviting to project"
+		LimitationsManager.canAddXCollaborators project_id, 1, (error, allowed) =>
+			return next(error) if error?
+			if !allowed
+				logger.log {projectId, email, sendingUserId}, "not allowed to invite any more users to this project"
+				return res.json {}
+			{email, privileges} = req.body
+			email = mimelib.parseAddresses(email or "")[0]?.address?.toLowerCase()
+			if !email? or email == ""
+				logger.log {projectId, email, sendingUserId}, "invalid email address"
+				return res.status(400).send("invalid email address")
+			CollaboratorsInviteHandler.inviteToProject projectId, sendingUserId, email, priveleges, (err, invite) ->
+				if err?
+					logger.err {projectId, email, sendingUserId}, "error creating project invite"
+					return next(err)
+				logger.log {projectId, email, sendingUserId}, "invite created"
+				return res.json {inviteId: invite._id}
 
-	revokeInvite: (req, res) ->
+	revokeInvite: (req, res, next) ->
 
-	viewInvite: (req, res) ->
+	viewInvite: (req, res, next) ->
 
-	acceptInvite: (req, res) ->
+	acceptInvite: (req, res, next) ->