Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// const { authenticate } = require('feathers-authentication').hooks;
const { isProvider, when, iff, populate, disableMultiItemChange, lowerCase } = require('feathers-hooks-common');
const { protect } = require('@feathersjs/authentication-local').hooks;
const { restrictToOwner } = require('feathers-authentication-hooks');
const { addVerification, removeVerification } = require('feathers-authentication-management').hooks;
const sendVerificationEmail = require('./hooks/send-verification-email');
const restrictUserRole = require('./hooks/restrict-user-role');
const createAdmin = require('./hooks/create-admin');
const createSlug = require('../../hooks/create-slug');
const thumbnails = require('../../hooks/thumbnails');
const isModerator = require('../../hooks/is-moderator-boolean');
const isSingleItem = require('../../hooks/is-single-item');
const inviteCode = require('./hooks/invite-code')();
const search = require('feathers-mongodb-fuzzy-search');
const isOwnEntry = require('./hooks/is-own-entry');
const removeAllRelatedUserData = require('./hooks/remove-all-related-user-data');
const { hashPassword } = require('@feathersjs/authentication-local').hooks;
const cleanupBasicData = protect('password', '_computed', 'verifyExpires', 'resetExpires', 'verifyChanges');
const { authenticate } = require('@feathersjs/authentication').hooks;
const { iff, unless, isProvider, populate, discard, softDelete, setNow } = require('feathers-hooks-common');
const { protect } = require('@feathersjs/authentication-local').hooks;
const {
//queryWithCurrentUser,
associateCurrentUser,
// restrictToAuthenticated,
restrictToOwner
} = require('feathers-authentication-hooks');
const { isVerified } = require('feathers-authentication-management').hooks;
const createExcerpt = require('../../hooks/create-excerpt');
const patchDeletedData = require('../../hooks/patch-deleted-data');
const concealBlacklistedData = require('../../hooks/conceal-blacklisted-data');
const keepDeletedDataFields = require('../../hooks/keep-deleted-data-fields');
const createNotifications = require('./hooks/create-notifications');
const createMentionNotifications = require('./hooks/create-mention-notifications');
const isModerator = require('../../hooks/is-moderator-boolean');
const _ = require('lodash');
const xss = require('../../hooks/xss');
const userSchema = {
include: {
service: 'users',
nameAs: 'user',
parentField: 'userId',
childField: '_id',
const { unless, when, isProvider, populate, softDelete, stashBefore } = require('feathers-hooks-common');
const { isVerified } = require('feathers-authentication-management').hooks;
const { authenticate } = require('@feathersjs/authentication').hooks;
const { associateCurrentUser } = require('feathers-authentication-hooks');
const createSlug = require('../../hooks/create-slug');
const saveRemoteImages = require('../../hooks/save-remote-images');
const createExcerpt = require('../../hooks/create-excerpt');
const isModerator = require('../../hooks/is-moderator-boolean');
// const excludeDisabled = require('../../hooks/exclude-disabled');
const thumbnails = require('../../hooks/thumbnails');
const restrictToOwnerOrModerator = require('../../hooks/restrictToOwnerOrModerator');
const restrictReviewAndEnableChange = require('../../hooks/restrictReviewAndEnableChange');
const search = require('feathers-mongodb-fuzzy-search');
const isSingleItem = require('../../hooks/is-single-item');
const xss = require('../../hooks/xss');
const thumbnailOptions = {
logo: {
const authentication = require('feathers-authentication');
const jwt = require('feathers-authentication-jwt');
const local = require('feathers-authentication-local');
const oauth2 = require('feathers-authentication-oauth2');
const GoogleStrategy = require('passport-google-oauth20');
const FacebookStrategy = require('passport-facebook');
const GithubStrategy = require('passport-github');
const verifyHooks = require('feathers-authentication-management').hooks;
const errors = require('feathers-errors');
const _ = require('lodash');
module.exports = function () {
const app = this;
const config = app.get('authentication');
// Set up authentication with the secret
app.configure(authentication(config));
app.configure(jwt());
app.configure(local(config.local));
app.configure(oauth2(Object.assign({
name: 'google',
Strategy: GoogleStrategy
const { authenticate } = require('@feathersjs/authentication').hooks;
const emotionRatingHook = require('./hooks/emotion-rating');
const { isVerified } = require('feathers-authentication-management').hooks;
const hooks = require('feathers-hooks-common');
module.exports = {
before: {
all: [authenticate('jwt')],
find: [],
get: [],
create: [
hooks.when(hooks.isProvider('external'),
isVerified()
)],
update: [hooks.disallow()],
patch: [hooks.disallow()],
remove: [hooks.disallow('external')]
},
after: {
all: [
// populate({ schema: userSchema }),
// populate({ schema: contributionSchema })
],
find: [],
get: [],
create: [emotionRatingHook()],
update: [],
patch: [],
childField: '_id',
query: {
$select: ['_id', 'name', 'slug', 'avatar', 'createdAt', 'lastActiveAt']
}
}
};
module.exports = {
before: {
all: [],
find: [],
get: [],
create: [
authenticate('jwt'),
unless(isProvider('server'),
isVerified(),
associateCurrentUser()
)
// mapCreateToUpsert(context => {
// const { data } = context;
// return { userId: data.userId, foreignId: data.foreignId, foreignService: data.foreignService };
// })
],
update: [
authenticate('jwt'),
unless(isModerator(),
restrictToOwner()
)
],
patch: [
authenticate('jwt'),
unless(isModerator(),
authenticate('jwt'),
// Allow seeder to seed contributions
associateCurrentUser(),
unless(isProvider('server'),
isVerified(),
canEditOrganization()
),
associateCurrentUser(),
createSlug({field: 'title'}),
saveRemoteImages(['teaserImg']),
createExcerpt()
],
update: [
authenticate('jwt'),
unless(isProvider('server'),
isVerified(),
canEditOrganization()
),
unless(isModerator(),
excludeDisabled(),
restrictToOwner()
),
saveRemoteImages(['teaserImg']),
createExcerpt(),
setNow('updatedAt')
],
patch: [
authenticate('jwt'),
unless(isProvider('server'),
isVerified(),
canEditOrganization()
),
hook => {
delete hook.params.query.deleted;
return hook;
}
],
get: [
iff(
hook => hook.params.headers && hook.params.headers.authorization,
authenticate('jwt')
)
],
create: [
authenticate('jwt'),
// Allow seeder to seed comments
unless(isProvider('server'),
isVerified()
),
associateCurrentUser(),
createExcerpt({ length: 180 })
],
update: [
authenticate('jwt'),
unless(isProvider('server'),
isVerified(),
restrictToOwner()
),
createExcerpt({ length: 180 }),
setNow('updatedAt')
],
patch: [
authenticate('jwt'),
unless(isProvider('server'),
auth.restrictToAuthenticated(),
globalHooks.isEnabled(),
globalHooks.hasPermission('manageUsers')
],
get: [
auth.verifyToken(),
auth.populateUser(),
auth.restrictToAuthenticated(),
globalHooks.isEnabled(),
globalHooks.hasPermission('manageUsers')
// auth.restrictToOwner({ ownerField: '_id' })
],
create: [
auth.hashPassword(),
common.lowerCase('email'),
verifyHooks.addVerification(),
globalHooks.setDefaultRole(),
globalHooks.setFirstUserToRole({role: 'admin'})
],
update: [
auth.verifyToken(),
auth.populateUser(),
auth.restrictToAuthenticated(),
globalHooks.isEnabled(),
globalHooks.hasPermissionOrRestrictChanges('manageUsers', {
restrictOn: ['role', 'isEnabled']
}),
globalHooks.preventDisabledAdmin()
],
patch: [
auth.verifyToken(),
auth.populateUser(),
remove: [ authenticate('jwt') ]
},
after: {
all: [
// Make sure the password field is never sent to the client
// Always must be the last hook
protect('password')
],
find: [],
get: [],
create: [
context => {
accountService(context.app).notifier('resendVerifySignup', context.result)
},
verifyHooks.removeVerification()
],
update: [],
patch: [],
remove: []
},
error: {
all: [],
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
}
};