Files
DiceCloud/app/imports/server/publications/users.js
2023-09-28 21:27:05 +02:00

62 lines
1.4 KiB
JavaScript

import SimpleSchema from 'simpl-schema';
import '/imports/api/users/Users';
import Invites from '/imports/api/users/Invites';
Meteor.publish('user', function () {
return [
Meteor.users.find(this.userId, {
fields: {
roles: 1,
username: 1,
apiKey: 1,
darkMode: 1,
subscribedLibraries: 1,
subscribedLibraryCollections: 1,
fileStorageUsed: 1,
profile: 1,
preferences: 1,
'services.patreon.id': 1,
'services.patreon.entitledCents': 1,
'services.patreon.entitledCentsOverride': 1,
'services.google.id': 1,
'services.google.picture': 1,
'services.google.name': 1,
'services.google.email': 1,
'services.google.locale': 1,
}
}),
Invites.find({
$or: [
{ inviter: this.userId },
{ invitee: this.userId }
],
}, {
fields: {
inviteToken: 0,
}
}),
];
});
let userIdsSchema = new SimpleSchema({
ids: {
type: Array,
optional: true,
},
'ids.$': {
type: String,
regEx: SimpleSchema.RegEx.Id,
}
})
Meteor.publish('userPublicProfiles', function (ids) {
userIdsSchema.validate({ ids });
if (!this.userId || !ids) return this.ready();
return Meteor.users.find({
_id: { $in: ids }
}, {
fields: { username: 1 },
sort: { username: 1 },
});
});