diff --git a/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee b/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee index 2b64f70887..a1bb0bdaf5 100644 --- a/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee +++ b/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteController.coffee @@ -1,6 +1,8 @@ ProjectGetter = require "../Project/ProjectGetter" LimitationsManager = require "../Subscription/LimitationsManager" UserGetter = require "../User/UserGetter" +Project = require("../../models/Project").Project +User = require("../../models/User").User CollaboratorsInviteHandler = require('./CollaboratorsInviteHandler') mimelib = require("mimelib") logger = require('logger-sharelatex') @@ -60,11 +62,19 @@ module.exports = CollaboratorsInviteController = if !invite logger.log {projectId, token}, "no invite found for token" return res.render "project/invite/not-valid" - res.render "project/invite/show", {invite} + Project.findOne {_id: projectId}, {owner_ref: 1, name: 1}, (err, project) -> + if err? + logger.err {err, projectId}, "error getting project" + return callback(err) + User.findOne {_id: project.owner_ref}, {email: 1, first_name: 1, last_name: 1}, (err, owner) -> + if err? + logger.err {err, projectId}, "error getting project owner" + return callback(err) + res.render "project/invite/show", {invite, project, owner} acceptInvite: (req, res, next) -> projectId = req.params.Project_id - inviteId = req.params.inviteId + inviteId = req.params.invite_id {token} = req.body currentUser = req.session.user logger.log {projectId, inviteId}, "accepting invite" @@ -72,4 +82,4 @@ module.exports = CollaboratorsInviteController = if err? logger.err {projectId, inviteId}, "error accepting invite by token" return next(err) - res.sendStatus(201) + res.redirect "/project/#{projectId}" diff --git a/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteHandler.coffee b/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteHandler.coffee index 3ba77019b7..161ddf0454 100644 --- a/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteHandler.coffee +++ b/services/web/app/coffee/Features/Collaborators/CollaboratorsInviteHandler.coffee @@ -75,7 +75,7 @@ module.exports = CollaboratorsInviteHandler = return callback(err) if !invite err = new Errors.NotFoundError("no matching invite found") - logger.log {err, projectId, inviteId}, "no matching invite found" + logger.log {err, projectId, inviteId, tokenString}, "no matching invite found" return callback(err) # do the thing diff --git a/services/web/app/views/project/invite/show.jade b/services/web/app/views/project/invite/show.jade index 705cea4fe8..012af3f85e 100644 --- a/services/web/app/views/project/invite/show.jade +++ b/services/web/app/views/project/invite/show.jade @@ -1 +1,30 @@ -h1 Invite TEST \ No newline at end of file +extends ../../layout + +block content + .content.content-alt + .container + .row + .col-md-8.col-md-offset-2 + .card.project-invite-accept + .page-header.text-centered + h1 #{translate("user_wants_you_to_see_project", {username:owner.first_name, projectname:""})} + em #{project.name} + .row.text-center + .col-md-12 + p + | You are accepting this invite as  + em #{user.email} + .row + .col-md-12 + form.form( + name="acceptForm", + method="POST", + action="/project/#{invite.projectId}/invite/#{invite._id}/accept" + ) + input(name='_csrf', type='hidden', value=csrfToken) + input(name='token', type='hidden', value="#{invite.token}") + .form-group.text-center + button.btn.btn-lg.btn-primary(type="submit") + | Accept Invite + .form-group.text-center + \ No newline at end of file diff --git a/services/web/public/stylesheets/app/invite.less b/services/web/public/stylesheets/app/invite.less new file mode 100644 index 0000000000..4354aa79c4 --- /dev/null +++ b/services/web/public/stylesheets/app/invite.less @@ -0,0 +1,5 @@ +.project-invite-accept { + form { + padding-top: 15px; + } +} \ No newline at end of file diff --git a/services/web/public/stylesheets/style.less b/services/web/public/stylesheets/style.less index b02891425c..0cf0939cbf 100755 --- a/services/web/public/stylesheets/style.less +++ b/services/web/public/stylesheets/style.less @@ -76,8 +76,8 @@ @import "app/translations.less"; @import "app/contact-us.less"; @import "app/sprites.less"; +@import "app/invite.less"; @import "../js/libs/pdfListView/TextLayer.css"; @import "../js/libs/pdfListView/AnnotationsLayer.css"; @import "../js/libs/pdfListView/HighlightsLayer.css"; -