mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
Clean way to seed the database
1. Temporarily open another backend with permissions disabled 2. Connect to this backend and run seed data
This commit is contained in:
parent
96da90a255
commit
803e613c4b
@ -7,7 +7,7 @@
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "./node_modules/.bin/nodemon --exec babel-node src/index.js",
|
||||
"start:debug": "./node_modules/.bin/nodemon --exec babel-node --inspect=0.0.0.0:9229 src/index.js",
|
||||
"seedDb": "cross-env IS_SEEDING='true' ./node_modules/.bin/babel-node src/seed/seed-db.js && cross-env IS_SEEDING=false"
|
||||
"db:seed": "concurrently --kill-others --success first 'cross-env GRAPHQL_URI=http://localhost:4001 PERMISSIONS=disabled GRAPHQL_LISTEN_PORT=4001 yarn run start' 'wait-on tcp:4001 && cross-env GRAPHQL_URI=http://localhost:4001 ./node_modules/.bin/babel-node src/seed/seed-db.js'"
|
||||
},
|
||||
"author": "Grzegorz Leoniec",
|
||||
"license": "MIT",
|
||||
@ -19,7 +19,6 @@
|
||||
"apollo-server": "^2.0.4",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"cheerio": "^1.0.0-rc.2",
|
||||
"cross-env": "^5.2.0",
|
||||
"date-fns": "^2.0.0-alpha.24",
|
||||
"dotenv": "^6.0.0",
|
||||
"graphql-custom-directives": "^0.2.13",
|
||||
@ -44,7 +43,10 @@
|
||||
"devDependencies": {
|
||||
"babel-cli": "^6.26.0",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
"concurrently": "^4.1.0",
|
||||
"cross-env": "^5.2.0",
|
||||
"faker": "^4.1.0",
|
||||
"nodemon": "^1.18.4"
|
||||
"nodemon": "^1.18.4",
|
||||
"wait-on": "^3.2.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ server.express.use(passport.initialize())
|
||||
server.express.post('/graphql', passport.authenticate(['jwt'], { session: false }))
|
||||
|
||||
const serverConfig = {
|
||||
port: 4000
|
||||
port: process.env.GRAPHQL_LISTEN_PORT
|
||||
// cors: {
|
||||
// credentials: true,
|
||||
// origin: [process.env.CLIENT_URI] // your frontend url.
|
||||
|
||||
@ -7,13 +7,18 @@ import dateTimeMiddleware from './dateTimeMiddleware';
|
||||
import xssMiddleware from './xssMiddleware';
|
||||
import permissionsMiddleware from './permissionsMiddleware';
|
||||
|
||||
export default schema => [
|
||||
permissionsMiddleware.generate(schema),
|
||||
passwordMiddleware,
|
||||
dateTimeMiddleware,
|
||||
sluggifyMiddleware,
|
||||
excerptMiddleware,
|
||||
xssMiddleware,
|
||||
fixImageUrlsMiddleware,
|
||||
softDeleteMiddleware
|
||||
]
|
||||
export default schema => {
|
||||
let middleware = [
|
||||
passwordMiddleware,
|
||||
dateTimeMiddleware,
|
||||
sluggifyMiddleware,
|
||||
excerptMiddleware,
|
||||
xssMiddleware,
|
||||
fixImageUrlsMiddleware,
|
||||
softDeleteMiddleware
|
||||
]
|
||||
if (process.env.PERMISSIONS !== 'disabled') {
|
||||
middleware.push(permissionsMiddleware.generate(schema))
|
||||
}
|
||||
return middleware
|
||||
}
|
||||
|
||||
@ -1,36 +1,15 @@
|
||||
import { rule, shield, and, or, not, allow } from 'graphql-shield'
|
||||
|
||||
const isAuthenticated = rule()(async (parent, args, ctx, info) => {
|
||||
// TODO: how to get this working while seeding?
|
||||
console.log('isSeeding', process.env.IS_SEEDING)
|
||||
if (process.env.IS_SEEDING === true) {
|
||||
return true
|
||||
}
|
||||
return ctx.user !== null
|
||||
})
|
||||
const isOwner = rule()(async (parent, args, ctx, info) => {
|
||||
// TODO: how to get this working while seeding?
|
||||
console.log('isSeeding', process.env.IS_SEEDING)
|
||||
if (process.env.IS_SEEDING === true) {
|
||||
return true
|
||||
}
|
||||
console.log('parent', parent)
|
||||
return ctx.user.id === parent.id
|
||||
})
|
||||
const isAdmin = rule()(async (parent, args, ctx, info) => {
|
||||
// TODO: how to get this working while seeding?
|
||||
console.log('isSeeding', process.env.IS_SEEDING)
|
||||
if (process.env.IS_SEEDING === true) {
|
||||
return true
|
||||
}
|
||||
return ctx.user.role === 'ADMIN'
|
||||
})
|
||||
const isModerator = rule()(async (parent, args, ctx, info) => {
|
||||
// TODO: how to get this working while seeding?
|
||||
console.log('isSeeding', process.env.IS_SEEDING)
|
||||
if (process.env.IS_SEEDING === true) {
|
||||
return true
|
||||
}
|
||||
return ctx.user.role === 'MODERATOR'
|
||||
})
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user