Enforce ownership

This commit is contained in:
2022-01-09 01:44:02 +02:00
parent 0062afddcf
commit f29ba94860
7 changed files with 388 additions and 47 deletions

View File

@@ -29,6 +29,7 @@ module.exports = function (options) {
]
}).then(translationArtifactVersion => {
if (translationArtifactVersion) {
// Show translation without artifactVersion
response.redirect(`/translate/${translationArtifactVersion.id}/chapter/${translationArtifactVersion.translationChapters[0].id}`)
} else {
next()
@@ -295,6 +296,31 @@ module.exports = function (options) {
{
association: db.TranslationArtifactVersion.BackTranslation,
},
{
association: db.TranslationArtifactVersion.Owner,
required: true,
include: [
{
association: db.Owner.OwnerEntities,
required: true,
include: [
{
association: db.OwnerEntity.Entity,
required: true,
include: [
{
association: db.Entity.EntityUsers,
required: true,
where: {
userId: request.user.id
}
}
]
}
]
}
]
}
]
}).then((translationArtifactVersion) => {
if (translationArtifactVersion) {
@@ -370,25 +396,50 @@ module.exports = function (options) {
include: [
{
association: db.TranslationArtifactVersion.TranslationArtifactVersionCampaigns,
required: true,
include: [
{
association: db.TranslationArtifactVersionCampaign.Campaign,
required: true
}
]
},
{
association: db.TranslationArtifactVersion.Owner,
required: true,
include: [
{
association: db.Owner.OwnerEntities,
required: true,
include: [
{
association: db.OwnerEntity.Entity,
required: true,
include: [
{
association: db.Entity.EntityUsers,
required: true,
where: {
userId: request.user.id
}
}
]
}
]
}
]
}
]
}).then(translationArtifactVersion => {
if (translationArtifactVersion) {
if (translationArtifactVersion.translationArtifactVersionCampaigns.length == 1) {
if (translationArtifactVersion.translationArtifactVersionCampaigns.length == 0) {
response.redirect(`/translate/${request.params.id}/campaigns/create`)
} else if (translationArtifactVersion.translationArtifactVersionCampaigns.length == 1) {
response.redirect(`/campaigns/${translationArtifactVersion.translationArtifactVersionCampaigns[0].campaignId}`)
} else {
// TODO: Display translation artifact campaign...
next()
}
} else {
response.redirect(`/translate/${request.params.id}/campaigns/create`)
next()
}
})
})
@@ -407,17 +458,41 @@ module.exports = function (options) {
},
{
association: db.TranslationArtifactVersion.TranslationArtifactVersionCampaigns,
required: false,
include: [
{
association: db.TranslationArtifactVersionCampaign.Campaign,
required: false
}
]
},
{
association: db.TranslationArtifactVersion.Owner,
required: true,
include: [
{
association: db.Owner.OwnerEntities,
required: true,
include: [
{
association: db.OwnerEntity.Entity,
required: true,
include: [
{
association: db.Entity.EntityUsers,
required: true,
where: {
userId: request.user.id
}
}
]
}
]
}
]
}
]
}).then(translationArtifactVersion => {
if (translationArtifactVersion) {
// TODO: Check if campaign exits...
response.display("campaign-form", {
user: request.user,
pageTitle: "Campaign - Mantra",
@@ -446,11 +521,34 @@ module.exports = function (options) {
},
{
association: db.TranslationArtifactVersion.TranslationArtifactVersionCampaigns,
required: false,
include: [
{
association: db.TranslationArtifactVersionCampaign.Campaign,
required: false
}
]
},
{
association: db.TranslationArtifactVersion.Owner,
required: true,
include: [
{
association: db.Owner.OwnerEntities,
required: true,
include: [
{
association: db.OwnerEntity.Entity,
required: true,
include: [
{
association: db.Entity.EntityUsers,
required: true,
where: {
userId: request.user.id
}
}
]
}
]
}
]
}