Skip to content
This repository was archived by the owner on Mar 4, 2022. It is now read-only.

Commit 4059267

Browse files
committed
Fixed private event checkbox
1 parent 4209f2e commit 4059267

File tree

4 files changed

+20
-6
lines changed

4 files changed

+20
-6
lines changed

backend/routes/events.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,19 @@ import { ObjectId } from 'mongodb';
55
import { Event } from '../models/event';
66
import { Member, IMemberModel } from '../models/member';
77
import { auth, hasPermissions } from '../middleware/passport';
8-
import { successRes, errorRes, sendAccountCreatedEmail } from '../utils';
8+
import {
9+
successRes,
10+
errorRes,
11+
sendAccountCreatedEmail,
12+
hasPermission
13+
} from '../utils';
914
export const router = express.Router();
1015

1116
// TODO: Add auth to routes
1217
// TODO: Add permissions to routes
1318

1419
router.get('/', async (req, res, next) => {
1520
try {
16-
console.log('User:', req.user);
1721
let { order, sortBy } = req.query;
1822
// tslint:disable-next-line:triple-equals
1923
order = order == '1' ? 1 : -1;
@@ -25,8 +29,12 @@ router.get('/', async (req, res, next) => {
2529
});
2630
if (!contains) sortBy = 'eventTime';
2731

32+
const conditions = hasPermission(req.user as IMemberModel, 'events')
33+
? {}
34+
: { privateEvent: { $ne: true } };
35+
2836
const results = await Event.find(
29-
{ privateEvent: { $ne: true } },
37+
conditions,
3038
'_id name createdAt location members'
3139
)
3240
.sort({ [sortBy]: order })
@@ -94,7 +102,7 @@ router.post('/:id', async (req, res, next) => {
94102
if (!ObjectId.isValid(req.params.id))
95103
return errorRes(res, 400, 'Invalid event ID');
96104
const { name, privateEvent, eventTime, location, facebook } = req.body;
97-
const eventBuilder = {};
105+
const eventBuilder = { privateEvent };
98106
if (!name) return errorRes(res, 400, 'Event must have a name');
99107
else Object.assign(eventBuilder, { name });
100108
if (!eventTime) return errorRes(res, 400, 'Event must have a time');

backend/utils/index.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ export const errorRes = (res: Response, status: number, error: any) =>
2828
error
2929
});
3030

31-
export const hasPermission = (user: IMemberModel, name: string) =>
31+
// export const hasPermission = (user: IMemberModel, name: string) =>
32+
// user.permissions.some(per => per.name === name || per.name === 'admin');
33+
34+
export const hasPermission = (user: IMemberModel, name: string): boolean =>
35+
user &&
36+
// (Object.keys(user).length !== 0 && user.constructor === Object) &&
3237
user.permissions.some(per => per.name === name || per.name === 'admin');
3338

3439
export const isAdmin = (user: IMemberModel) => hasPermission(user, 'admin');

frontend/src/components/Edit-CreateEvent/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class EditEventPage extends Component {
111111
};
112112
if (type === 'edit') {
113113
const newEvent = await updateEvent(match.params.id, event);
114-
console.log('Created new event:', newEvent);
114+
console.log('Updated event:', newEvent);
115115
this.setState({ event: newEvent });
116116
return flash('Event successfully updated', 'green');
117117
}

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"outDir": "dist",
77
"sourceMap": true,
88
"target": "es6",
9+
"typeRoots": ["./backend/typings"],
910
// "strict": true,
1011
"allowJs": true,
1112
"removeComments": true,

0 commit comments

Comments
 (0)