Merge branch 'develop' of git.digitaltelepresence.com:digital-telepresence/dtp-base into develop

master
rob 2 years ago
commit 9ff9ffa5f7

@ -7,6 +7,8 @@
const mongoose = require('mongoose'); const mongoose = require('mongoose');
const Schema = mongoose.Schema; const Schema = mongoose.Schema;
const EMITTER_TYPE_LIST = ['User','CoreUser','OAuth2Client'];
const KaleidoscopeEventSchema = new Schema({ const KaleidoscopeEventSchema = new Schema({
created: { type: Date, default: Date.now, required: true, index: -1, expires: '30d' }, created: { type: Date, default: Date.now, required: true, index: -1, expires: '30d' },
action: { type: String, required: true, lowercase: true }, action: { type: String, required: true, lowercase: true },
@ -28,8 +30,9 @@ const KaleidoscopeEventSchema = new Schema({
scopes: { type: [String] }, scopes: { type: [String] },
}, },
}, },
author: { emitter: {
userId: { type: Schema.ObjectId, required: true }, emitterType: { type: String, enum: EMITTER_TYPE_LIST },
emitterId: { type: Schema.ObjectId, refPath: 'source.emitter.emitterType' },
displayName: { type: String }, displayName: { type: String },
username: { type: String }, username: { type: String },
href: { type: String }, href: { type: String },
@ -45,7 +48,7 @@ const KaleidoscopeEventSchema = new Schema({
*/ */
KaleidoscopeEventSchema.index({ KaleidoscopeEventSchema.index({
'source.site.domainKey': 1, 'source.site.domainKey': 1,
'source.author.userId': 1, 'source.emitter.emitterId': 1,
}, { }, {
name: 'evtsrc_site_author_index', name: 'evtsrc_site_author_index',
}); });

@ -208,12 +208,21 @@ class HiveService extends SiteService {
scopes: eventDefinition.source.site.coreAuth.scopes.map((scope) => scope.trim().toLowerCase()), scopes: eventDefinition.source.site.coreAuth.scopes.map((scope) => scope.trim().toLowerCase()),
}, },
}, },
emitter: { };
if (eventDefinition.source.emitter) {
event.source.emitter = {
emitterType: striptags(eventDefinition.source.emitter.emitterType),
emitterId: mongoose.Types.ObjectId(eventDefinition.source.emitter.emitterId), emitterId: mongoose.Types.ObjectId(eventDefinition.source.emitter.emitterId),
username: striptags(eventDefinition.source.emitter.username.trim()),
href: striptags(eventDefinition.source.emitter.href.trim()), href: striptags(eventDefinition.source.emitter.href.trim()),
}, };
}; if (eventDefinition.source.emitter.displayName) {
event.source.emitter.displayName = striptags(eventDefinition.source.emitter.displayName.trim());
}
if (eventDefinition.source.emitter.username) {
event.source.emitter.username = striptags(eventDefinition.source.emitter.username.trim());
}
}
if (eventDefinition.source.site.company) { if (eventDefinition.source.site.company) {
event.source.site.company = striptags(eventDefinition.source.site.company.trim()); event.source.site.company = striptags(eventDefinition.source.site.company.trim());

Loading…
Cancel
Save