Skip to content

Commit 2f209e2

Browse files
authored
Merge pull request #120 from Digipalvelutehdas/feature/rest-auth
Enable authentication for REST API
2 parents 0f54f20 + 967242f commit 2f209e2

File tree

2 files changed

+49
-2
lines changed

2 files changed

+49
-2
lines changed

apis/server/api.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import _ from 'lodash';
66
// /rest-api/v1/apis/:id for Apis collection
77
ApiV1.addCollection(Apis, {
88
excludedEndpoints: ['post', 'put', 'delete'],
9-
routeOptions: { authRequired: false },
9+
routeOptions: { authRequired: true },
1010
endpoints: {
1111
getAll: {
1212
swagger: {

core/server/api.js

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Meteor } from 'meteor/meteor';
12
import { Restivus } from 'meteor/nimble:restivus';
23

34
const ApiV1 = new Restivus({
@@ -6,7 +7,7 @@ const ApiV1 = new Restivus({
67
defaultHeaders: {
78
'Content-Type': 'application/json',
89
},
9-
useDefaultAuth: false,
10+
useDefaultAuth: true,
1011
prettyJson: true,
1112
enableCors: true,
1213
});
@@ -43,6 +44,52 @@ ApiV1.swagger = {
4344
},
4445
};
4546

47+
// Enable user endpoints if authentication is enabled
48+
if (ApiV1._config.useDefaultAuth) {
49+
// Generates: POST on /api/v1/users and GET, DELETE /api/v1/users/:id for
50+
// Meteor.users collection
51+
ApiV1.addCollection(Meteor.users, {
52+
excludedEndpoints: ['getAll', 'put'],
53+
routeOptions: {
54+
authRequired: true,
55+
},
56+
endpoints: {
57+
get: {
58+
swagger: {
59+
description: 'Returns user with given ID.',
60+
responses: {
61+
200: {
62+
description: 'One user.',
63+
},
64+
},
65+
},
66+
},
67+
post: {
68+
authRequired: false,
69+
swagger: {
70+
description: 'Add user.',
71+
responses: {
72+
200: {
73+
description: 'Return user that was added.',
74+
},
75+
},
76+
},
77+
},
78+
delete: {
79+
roleRequired: 'admin',
80+
swagger: {
81+
description: 'Delete user.',
82+
responses: {
83+
200: {
84+
description: 'Successful delete.',
85+
},
86+
},
87+
},
88+
},
89+
},
90+
});
91+
}
92+
4693
// Generate Swagger to route /rest-api/v1/swagger.json
4794
ApiV1.addSwagger('swagger.json');
4895

0 commit comments

Comments
 (0)