diff --git a/src/project/controller/person-collection.ts b/src/project/controller/person-collection.ts index 3a66365..ad51f22 100644 --- a/src/project/controller/person-collection.ts +++ b/src/project/controller/person-collection.ts @@ -15,10 +15,12 @@ class ProjectPersonCollection extends Controller { const params = { role: ctx.request.body.role, name: ctx.request.body.name, - href: ctx.request.body.href + href: ctx.request.body.href, }; + const projectId = +ctx.params.projectId; + const origin = ctx.request.origin; - await projectService.addPersonToProject(params); + await projectService.addPersonToProject(params, projectId, origin); ctx.status = 201; diff --git a/src/project/service.ts b/src/project/service.ts index b26d848..69b6606 100644 --- a/src/project/service.ts +++ b/src/project/service.ts @@ -6,6 +6,7 @@ import * as clientService from '../client/service'; import * as personService from '../person/service'; import { ProjectsRecord } from 'knex/types/tables'; import ketting from '../ketting'; +import { addUserPrivilege } from '../a12n'; export async function findAll(): Promise { @@ -79,12 +80,14 @@ function mapRecord(input: ProjectsRecord, client: Client): Project { } -export async function addPersonToProject(params: PersonProjectForm): Promise { +export async function addPersonToProject(params: PersonProjectForm, projectId: number, origin: string): Promise { const principalUri = await findOrCreatePrincipal(params.href, params.name); + let project : Project; try { await personService.findByPrincipalUrl(principalUri); + project = await findById(projectId); } catch(error) { if(!(error instanceof NotFound)){ @@ -96,6 +99,16 @@ export async function addPersonToProject(params: PersonProjectForm): Promise