diff --git a/src/api/job.js b/src/api/job.js index 2e8d5f86e..1accdc4ed 100644 --- a/src/api/job.js +++ b/src/api/job.js @@ -18,7 +18,9 @@ get.params = { } export async function create ({job}) { - job.userId = this.session.get('user_id') + if (!job.userId) { + job.userId = this.session.get('user_id') + } return (await this.createJob(job)).id } @@ -29,6 +31,7 @@ create.params = { job: { type: 'object', properties: { + userId: {type: 'string', optional: true}, name: {type: 'string', optional: true}, type: {type: 'string'}, key: {type: 'string'}, @@ -51,7 +54,11 @@ create.params = { } export async function set ({job}) { - await this.updateJob(job) + if (!job.userId) { + job.userId = this.session.get('user_id') + } + + return this.updateJob(job) } set.permission = 'admin' @@ -61,6 +68,7 @@ set.params = { type: 'object', properties: { id: {type: 'string'}, + userId: {type: 'string', optional: true}, name: {type: 'string', optional: true}, type: {type: 'string'}, key: {type: 'string'}, diff --git a/src/xo-mixins/jobs.js b/src/xo-mixins/jobs.js index 8cd1f9d2d..f922f83a8 100644 --- a/src/xo-mixins/jobs.js +++ b/src/xo-mixins/jobs.js @@ -45,9 +45,9 @@ export default class { return job_.properties } - async updateJob ({id, type, name, key, method, paramsVector}) { + async updateJob ({id, userId, type, name, key, method, paramsVector}) { const oldJob = await this.getJob(id) - assign(oldJob, {type, name, key, method, paramsVector}) + assign(oldJob, {userId, type, name, key, method, paramsVector}) return /* await */ this._jobs.save(oldJob) }