Merge pull request #2593 from overleaf/ta-affiliation-licence-check

Check Licence on Affiliations Rather Than Institutions

GitOrigin-RevId: 7effe7f564ff953e60ed77bcdf92f3cb177d4aee
This commit is contained in:
Simon Detheridge
2020-02-19 04:20:39 +00:00
committed by Copybot
parent 19266bbc8a
commit b812109cb7
6 changed files with 54 additions and 27 deletions
@@ -53,16 +53,16 @@ module.exports = InstitutionsFeatures = {
if (callback == null) {
callback = function(error, hasLicence) {}
}
return InstitutionsGetter.getConfirmedInstitutions(userId, function(
return InstitutionsGetter.getConfirmedAffiliations(userId, function(
error,
institutions
affiliations
) {
if (error != null) {
return callback(error)
}
const hasLicence = institutions.some(
institution => institution.licence && institution.licence !== 'free'
const hasLicence = affiliations.some(
affiliation => affiliation.licence && affiliation.licence !== 'free'
)
return callback(null, hasLicence)
@@ -20,7 +20,7 @@ const UserMembershipEntityConfigs = require('../UserMembership/UserMembershipEnt
const logger = require('logger-sharelatex')
module.exports = InstitutionsGetter = {
getConfirmedInstitutions(userId, callback) {
getConfirmedAffiliations(userId, callback) {
if (callback == null) {
callback = function(error, institutions) {}
}
@@ -29,7 +29,7 @@ module.exports = InstitutionsGetter = {
return callback(error)
}
const confirmedInstitutions = emailsData
const confirmedAffiliations = emailsData
.filter(
emailData =>
emailData.confirmedAt != null &&
@@ -40,15 +40,33 @@ module.exports = InstitutionsGetter = {
x => x.confirmed
)
)
.map(
emailData =>
emailData.affiliation != null
? emailData.affiliation.institution
.map(emailData => emailData.affiliation)
return callback(null, confirmedAffiliations)
})
},
getConfirmedInstitutions(userId, callback) {
if (callback == null) {
callback = function(error, institutions) {}
}
InstitutionsGetter.getConfirmedAffiliations(
userId,
(error, confirmedAffiliations) => {
if (error != null) {
return callback(error)
}
const confirmedInstitutions = confirmedAffiliations.map(
confirmedAffiliation =>
confirmedAffiliation != null
? confirmedAffiliation.institution
: undefined
)
return callback(null, confirmedInstitutions)
})
return callback(null, confirmedInstitutions)
}
)
},
getManagedInstitutions(user_id, callback) {
@@ -155,8 +155,14 @@ var decorateFullEmails = (defaultEmail, emailsData, affiliationsData) =>
aff => aff.email === emailData.email
)
if (affiliation) {
const { institution, inferred, role, department } = affiliation
emailData.affiliation = { institution, inferred, role, department }
const { institution, inferred, role, department, licence } = affiliation
emailData.affiliation = {
institution,
inferred,
role,
department,
licence
}
} else {
emailsData.affiliation = null
}