Skip to content

Commit 90ccdd5

Browse files
committed
fixing merge conflicts
2 parents eae9ed1 + 06d4be6 commit 90ccdd5

File tree

11 files changed

+86
-74
lines changed

11 files changed

+86
-74
lines changed

package-lock.json

Lines changed: 26 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"dependencies": {
3838
"@babel/core": "7.9.6",
3939
"@babel/node": "7.8.7",
40-
"casbin": "4.4.0",
40+
"casbin": "4.5.0",
4141
"casbin-sequelize-adapter": "2.0.1",
4242
"chai": "4.2.0",
4343
"cors": "2.8.5",
@@ -58,7 +58,7 @@
5858
"pg": "7.18.2",
5959
"random-words": "1.1.1",
6060
"sequelize": "5.21.8",
61-
"snyk": "^1.316.1",
61+
"snyk": "^1.316.2",
6262
"supertest": "4.0.2",
6363
"swagger-ui-express": "4.1.4",
6464
"tls": "0.0.1",

src/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ app.use(cors());
3232
app.use(helmet());
3333
app.use(express.json());
3434
app.use(express.urlencoded({ extended: true }));
35-
app.use(apiLimiter);
35+
if (process.env.NODE_ENV !== 'production') app.use(apiLimiter);
3636

3737
// Custom middleware
3838
app.use(async (req, res, next) => {

src/models/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ if (process.env.NODE_ENV === 'production') {
3131
const sequelize = new Sequelize(
3232
dbUrl,
3333
{
34+
logging: false,
3435
dialect: 'postgres',
3536
dialectOptions: dialectOptions
3637
}

src/routes/contact.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ router.post('/', async (req, res) => {
5656
let contact;
5757
let ec;
5858
try {
59-
if (req.body.name !== undefined) {
59+
if (req.body.name !== undefined && req.body.name !== '') {
6060
const { name, phone, email, UserId, entities, attributes } = req.body;
6161

6262
// Validating emails

src/routes/entity.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ router.post('/', async (req, res) => {
5353
let code;
5454
let message;
5555
try {
56-
if (req.body.name !== undefined) {
56+
if (req.body.name !== undefined && req.body.name !== '') {
5757
let { name, address, phone, email, checkIn, contacts } = req.body;
5858

5959
if (!checkIn) {

src/routes/user.js

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ import utils from '../utils';
55
import email from '../email';
66

77
const router = new Router();
8+
const max = (process.env.NODE_ENV !== 'production') ? 50000 : 5;
89
const loginLimiter = rateLimit({
910
windowMs: 60 * 60 * 1000,
10-
max: 5,
11+
max: max,
1112
message: "Too many login attempts for this IP. Please try again later."
1213
});
1314

@@ -174,7 +175,7 @@ router.put('/', utils.authMiddleware, async (req, res) => {
174175
let code;
175176
let message;
176177
try {
177-
if (validator.isEmail(req.body.email) && req.body.password !== undefined) {
178+
if (validator.isEmail(req.body.email)) {
178179
/** @todo add email and phone update options */
179180
const { email, password, displayName, phone, attributes } = req.body;
180181
const user = await req.context.models.User.findOne({
@@ -186,20 +187,22 @@ router.put('/', utils.authMiddleware, async (req, res) => {
186187

187188

188189
/** @todo when roles are added make sure only admin or relevant user can change password */
189-
const e = await utils.loadCasbin();
190-
const roles = await e.getRolesForUser(req.context.me.email);
191-
192-
if (password) {
193-
if (req.context.me.email === email || roles.includes('admin')) {
194-
user.password = password;
190+
if (!process.env.BYPASS_LOGIN) {
191+
const e = await utils.loadCasbin();
192+
const roles = await e.getRolesForUser(req.context.me.email);
193+
194+
if (password) {
195+
if (req.context.me.email === email || roles.includes('admin')) {
196+
user.password = password;
197+
}
195198
}
196-
}
197199

198-
/** @todo this is half-baked. Once updating users is available through the front-end this should be revisited. */
199-
if (roles !== undefined) {
200-
const e = await utils.loadCasbin();
201-
for (const role of roles) {
202-
await e.addRoleForUser(email.toLowerCase(), role);
200+
/** @todo this is half-baked. Once updating users is available through the front-end this should be revisited. */
201+
if (roles !== undefined) {
202+
const e = await utils.loadCasbin();
203+
for (const role of roles) {
204+
await e.addRoleForUser(email.toLowerCase(), role);
205+
}
203206
}
204207
}
205208

@@ -235,6 +238,11 @@ router.delete('/:email', utils.authMiddleware, async (req, res) => {
235238
email: req.params.email.toLowerCase()
236239
}
237240
});
241+
242+
const e = await utils.loadCasbin();
243+
await e.deleteRolesForUser(req.params.email.toLowerCase());
244+
245+
238246
await user.destroy();
239247

240248
code = 200;

src/tests/contact.routes.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ describe('Contact negative tests', () => {
6565
request(app)
6666
.post('/contact')
6767
.set('Accept', 'application/json')
68-
.send({ email: randomWords() })
68+
.send({ name: '' })
6969
.expect('Content-Type', 'text/html; charset=utf-8')
7070
.expect(422)
7171
.end((err, res) => {

src/tests/entity.routes.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ describe('Entity negative tests', () => {
6464
it('should not create a entity', (done) => {
6565
request(app)
6666
.post('/entity')
67-
.send({ email: randomWords() })
67+
.send({ name: '' })
6868
.set('Accept', 'application/json')
6969
.expect('Content-Type', 'text/html; charset=utf-8')
7070
.expect(422)

src/tests/user.routes.spec.js

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -62,36 +62,35 @@ describe('User positive tests', () => {
6262
});
6363
});
6464
// Test will need some more work.
65-
// it('should update a user', (done) => {
66-
// user.password = randomWords();
67-
// request(app)
68-
// .put('/user')
69-
// .send(user)
70-
// .set('token', token)
71-
// .set('Accept', 'application/json')
72-
// .send()
73-
// .expect('Content-Type', 'text/html; charset=utf-8')
74-
// .expect(200)
75-
// .end((err, res) => {
76-
// if (err) return done(err);
77-
// expect(res.text).to.equal(`${user.email} updated`);
78-
// done();
79-
// });
80-
// });
81-
// it('should delete a user', (done) => {
82-
// request(app)
83-
// .delete(`/user/${user.email}`)
84-
// .set('Accept', 'application/json')
85-
// .set('token', token)
86-
// .send()
87-
// .expect('Content-Type', 'text/html; charset=utf-8')
88-
// .expect(200)
89-
// .end((err, res) => {
90-
// if (err) return done(err);
91-
// expect(res.text).to.equal(`${user.email} deleted`);
92-
// done();
93-
// });
94-
// });
65+
it('should update a user', (done) => {
66+
user.displayName = randomWords();
67+
request(app)
68+
.put('/user')
69+
.set('token', token)
70+
.send(user)
71+
.set('Accept', 'application/json')
72+
.expect('Content-Type', 'text/html; charset=utf-8')
73+
.expect(200)
74+
.end((err, res) => {
75+
if (err) return done(err);
76+
expect(res.text).to.equal(`${user.email} updated`);
77+
done();
78+
});
79+
});
80+
it('should delete a user', (done) => {
81+
request(app)
82+
.delete(`/user/${user.email}`)
83+
.set('Accept', 'application/json')
84+
.set('token', token)
85+
.send()
86+
.expect('Content-Type', 'text/html; charset=utf-8')
87+
.expect(200)
88+
.end((err, res) => {
89+
if (err) return done(err);
90+
expect(res.text).to.equal(`${user.email} deleted`);
91+
done();
92+
});
93+
});
9594
});
9695

9796
describe('User negative tests', () => {

0 commit comments

Comments
 (0)